]> git.meshlink.io Git - catta/blobdiff - avahi-core/iface.c
* Improve error message when /etc/avahi/services is not available
[catta] / avahi-core / iface.c
index 73f4cdf5c5d232caa4b6496334bfbc85c0de39bf..60419dff61803dd90a2183c756541b5a4747068f 100644 (file)
@@ -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);
         }