AVAHI_CHROOT_GET_SERVICE_BROWSER_INTROSPECT,
AVAHI_CHROOT_GET_SERVICE_RESOLVER_INTROSPECT,
AVAHI_CHROOT_GET_SERVICE_TYPE_BROWSER_INTROSPECT,
+ AVAHI_CHROOT_GET_RECORD_BROWSER_INTROSPECT,
#endif
AVAHI_CHROOT_UNLINK_PID,
AVAHI_CHROOT_UNLINK_SOCKET,
AVAHI_DBUS_INTROSPECTION_DIR"/ServiceBrowser.introspect",
AVAHI_DBUS_INTROSPECTION_DIR"/ServiceResolver.introspect",
AVAHI_DBUS_INTROSPECTION_DIR"/ServiceTypeBrowser.introspect",
+ AVAHI_DBUS_INTROSPECTION_DIR"/RecordBrowser.introspect",
#endif
NULL,
NULL
NULL,
NULL,
NULL,
+ NULL,
#endif
AVAHI_DAEMON_RUNTIME_DIR"/pid",
AVAHI_SOCKET
case AVAHI_CHROOT_GET_SERVICE_BROWSER_INTROSPECT:
case AVAHI_CHROOT_GET_SERVICE_RESOLVER_INTROSPECT:
case AVAHI_CHROOT_GET_SERVICE_TYPE_BROWSER_INTROSPECT:
+ case AVAHI_CHROOT_GET_RECORD_BROWSER_INTROSPECT:
#endif
case AVAHI_CHROOT_GET_RESOLV_CONF: {
int payload;
return -1;
}
- if ((pid = daemon_fork()) < 0) {
+ if ((pid = fork()) < 0) {
close(sock[0]);
close(sock[1]);
- avahi_log_error(__FILE__": Failed to fork()");
+ avahi_log_error(__FILE__": fork() failed: %s", strerror(errno));
return -1;
} else if (pid == 0) {
+
+ setsid();
/* Drop all remaining capabilities */
avahi_caps_drop_all();
- avahi_set_proc_title("%s: chroot helper process", argv0);
+ avahi_set_proc_title(argv0, "%s: chroot helper", argv0);
+
+ daemon_retval_done();
close(sock[0]);
helper_main(sock[1]);