From: Lennart Poettering Date: Sun, 14 Aug 2005 03:13:28 +0000 (+0000) Subject: Fix no network interface bug reported by Lathiat X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=fd709eb188a6ec65026c3dab3a08abaf252bac85;p=catta Fix no network interface bug reported by Lathiat git-svn-id: file:///home/lennart/svn/public/avahi/trunk@316 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- diff --git a/avahi-core/server.c b/avahi-core/server.c index 40ef616..396dcf4 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -1202,10 +1202,14 @@ static void register_stuff(AvahiServer *s) { assert(s); server_set_state(s, AVAHI_SERVER_REGISTERING); + s->n_host_rr_pending ++; /** Make sure that the state isn't changed tp AVAHI_SERVER_RUNNING too early */ + register_hinfo(s); register_browse_domain(s); avahi_update_host_rrs(s->monitor, 0); + s->n_host_rr_pending --; + if (s->n_host_rr_pending == 0) server_set_state(s, AVAHI_SERVER_RUNNING); } diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c index 843ee2b..e9030aa 100644 --- a/avahi-daemon/main.c +++ b/avahi-daemon/main.c @@ -193,6 +193,11 @@ static void server_callback(AvahiServer *s, AvahiServerState state, void *userda g_assert(s); g_assert(c); + /** This function is possibly called before the global variable + * avahi_server has been set, therefore we do it explicitly */ + + avahi_server = s; + #ifdef ENABLE_DBUS if (c->enable_dbus) dbus_protocol_server_state_changed(state); @@ -624,14 +629,14 @@ static gint run_server(DaemonConfig *c) { goto finish; #endif + load_resolv_conf(c); + static_service_load(); + if (!(avahi_server = avahi_server_new(avahi_glib_poll_get(poll_api), &c->server_config, server_callback, c, &error))) { avahi_log_error("Failed to create server: %s", avahi_strerror(error)); goto finish; } - load_resolv_conf(c); - - static_service_load(); if (c->daemonize) daemon_retval_send(0); @@ -968,7 +973,7 @@ int main(int argc, char *argv[]) { chdir("/"); - avahi_log_info("%s "PACKAGE_VERSION" starting up.\n", argv0); + avahi_log_info("%s "PACKAGE_VERSION" starting up.", argv0); if (run_server(&config) == 0) r = 0;