X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fiface.c;h=60419dff61803dd90a2183c756541b5a4747068f;hb=219241ab5223b705ade51485ea9227b0a6089c0d;hp=73f4cdf5c5d232caa4b6496334bfbc85c0de39bf;hpb=c0244c2448a5504581ae24e78b5859760b999b8e;p=catta diff --git a/avahi-core/iface.c b/avahi-core/iface.c index 73f4cdf..60419df 100644 --- a/avahi-core/iface.c +++ b/avahi-core/iface.c @@ -45,14 +45,18 @@ static void update_address_rr(AvahiInterfaceMonitor *m, AvahiInterfaceAddress *a if (avahi_interface_address_relevant(a) && !remove && - m->server->config.register_addresses && + m->server->config.publish_addresses && (m->server->state == AVAHI_SERVER_RUNNING || m->server->state == AVAHI_SERVER_REGISTERING)) { if (!a->entry_group) { a->entry_group = avahi_entry_group_new(m->server, avahi_host_rr_entry_group_callback, NULL); - avahi_server_add_address(m->server, a->entry_group, a->interface->hardware->index, a->interface->protocol, 0, NULL, &a->address); - avahi_entry_group_commit(a->entry_group); + if (avahi_server_add_address(m->server, a->entry_group, a->interface->hardware->index, a->interface->protocol, 0, NULL, &a->address) < 0) { + avahi_log_warn(__FILE__": avahi_server_add_address() failed."); + avahi_entry_group_free(a->entry_group); + a->entry_group = NULL; + } else + avahi_entry_group_commit(a->entry_group); } } else { @@ -87,7 +91,7 @@ static void update_hw_interface_rr(AvahiInterfaceMonitor *m, AvahiHwInterface *h update_interface_rr(m, i, remove); if (!remove && - m->server->config.register_workstation && + m->server->config.publish_workstation && (m->server->state == AVAHI_SERVER_RUNNING || m->server->state == AVAHI_SERVER_REGISTERING)) { @@ -98,8 +102,12 @@ static void update_hw_interface_rr(AvahiInterfaceMonitor *m, AvahiHwInterface *h g_free(t); hw->entry_group = avahi_entry_group_new(m->server, avahi_host_rr_entry_group_callback, NULL); - avahi_server_add_service(m->server, hw->entry_group, hw->index, AF_UNSPEC, "_workstation._tcp", name, NULL, NULL, 9, NULL); - avahi_entry_group_commit(hw->entry_group); + if (avahi_server_add_service(m->server, hw->entry_group, hw->index, AF_UNSPEC, "_workstation._tcp", name, NULL, NULL, 9, NULL) < 0) { + avahi_log_warn(__FILE__": avahi_server_add_service() failed."); + avahi_entry_group_free(hw->entry_group); + hw->entry_group = NULL; + } else + avahi_entry_group_commit(hw->entry_group); g_free(name); }