X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=inline;f=avahi-daemon%2Fmain.c;h=e5f307079b45a71dc2f9155b4d404bf3896f767c;hb=32260f5d2ca0370b07da494b60c01a3a861a0c20;hp=ce82664c40518458c8dd4f747c55c56112d867a5;hpb=41fd44c00e3368fe59c156e5eb70a00c8a99781f;p=catta diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c index ce82664..e5f3070 100644 --- a/avahi-daemon/main.c +++ b/avahi-daemon/main.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -175,6 +176,11 @@ static void server_callback(AvahiServer *s, AvahiServerState state, gpointer use g_assert(s); g_assert(config); +#ifdef ENABLE_DBUS + if (config->enable_dbus) + dbus_protocol_server_state_changed(state); +#endif + if (state == AVAHI_SERVER_RUNNING) { avahi_log_info("Server startup complete. Host name is <%s>", avahi_server_get_host_name_fqdn(s)); static_service_add_to_server(); @@ -201,6 +207,8 @@ static void server_callback(AvahiServer *s, AvahiServerState state, gpointer use avahi_server_set_host_name(s, n); g_free(n); } + + } static void help(FILE *f, const gchar *argv0) { @@ -436,6 +444,10 @@ static void log_function(AvahiLogLevel level, const gchar *txt) { daemon_log(log_level_map[level], "%s", txt); } +static void dump(const gchar *text, gpointer userdata) { + avahi_log_info("%s", text); +} + static gboolean signal_callback(GIOChannel *source, GIOCondition condition, gpointer data) { gint sig; GMainLoop *loop = data; @@ -476,6 +488,11 @@ static gboolean signal_callback(GIOChannel *source, GIOCondition condition, gpoi break; + case SIGUSR1: + avahi_log_info("Got SIGUSR1, dumping record data."); + avahi_server_dump(avahi_server, dump, NULL); + break; + default: avahi_log_warn("Got spurious signal, ignoring."); break; @@ -494,7 +511,7 @@ static gint run_server(DaemonConfig *config) { loop = g_main_loop_new(NULL, FALSE); - if (daemon_signal_init(SIGINT, SIGQUIT, SIGHUP, SIGTERM, 0) < 0) { + if (daemon_signal_init(SIGINT, SIGQUIT, SIGHUP, SIGTERM, SIGUSR1, 0) < 0) { avahi_log_error("Could not register signal handlers (%s).", strerror(errno)); goto finish; } @@ -625,7 +642,7 @@ static gint drop_root(void) { } static const char* pid_file_proc(void) { - return AVAHI_RUNTIME_DIR"/avahi-daemon.pid"; + return AVAHI_DAEMON_RUNTIME_DIR"/pid"; } static gint make_runtime_dir(void) { @@ -649,20 +666,20 @@ static gint make_runtime_dir(void) { u = umask(0000); reset_umask = TRUE; - if (mkdir(AVAHI_RUNTIME_DIR, 0755) < 0 && errno != EEXIST) { - avahi_log_error("mkdir(\""AVAHI_RUNTIME_DIR"\"): %s", strerror(errno)); + if (mkdir(AVAHI_DAEMON_RUNTIME_DIR, 0755) < 0 && errno != EEXIST) { + avahi_log_error("mkdir(\""AVAHI_DAEMON_RUNTIME_DIR"\"): %s", strerror(errno)); goto fail; } - chown(AVAHI_RUNTIME_DIR, pw->pw_uid, gr->gr_gid); + chown(AVAHI_DAEMON_RUNTIME_DIR, pw->pw_uid, gr->gr_gid); - if (stat(AVAHI_RUNTIME_DIR, &st) < 0) { + if (stat(AVAHI_DAEMON_RUNTIME_DIR, &st) < 0) { avahi_log_error("stat(): %s\n", strerror(errno)); goto fail; } if (!S_ISDIR(st.st_mode) || st.st_uid != pw->pw_uid || st.st_gid != gr->gr_gid) { - avahi_log_error("Failed to create runtime directory "AVAHI_RUNTIME_DIR"."); + avahi_log_error("Failed to create runtime directory "AVAHI_DAEMON_RUNTIME_DIR"."); goto fail; }