]> git.meshlink.io Git - catta/blobdiff - examples/core-browse-services.c
fix core-publish-service.c
[catta] / examples / core-browse-services.c
index 86b18a007aef8172b30899afa5b8181e62112dd0..db2dcb9b19e67a3059bcb29d5324d1c7b8c8409d 100644 (file)
@@ -68,16 +68,14 @@ static void resolve_callback(
     /* Called whenever a service has been resolved successfully or timed out */
 
     switch (event) {
-        case AVAHI_RESOLVER_TIMEOUT:
-        case AVAHI_RESOLVER_NOT_FOUND:
         case AVAHI_RESOLVER_FAILURE:
-            fprintf(stderr, "Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain,
-                    event == AVAHI_RESOLVER_TIMEOUT ? "TIMEOUT" : (event == AVAHI_RESOLVER_NOT_FOUND ? "NOT_FOUND" : "FAILURE"));
+            fprintf(stderr, "(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain, avahi_strerror(avahi_server_errno(server)));
+            break;
 
         case AVAHI_RESOLVER_FOUND: {
-            char a[128], *t;
+            char a[AVAHI_ADDRESS_STR_MAX], *t;
             
-            fprintf(stderr, "Service '%s' of type '%s' in domain '%s':\n", name, type, domain);
+            fprintf(stderr, "(Resolver) Service '%s' of type '%s' in domain '%s':\n", name, type, domain);
             
             avahi_address_snprint(a, sizeof(a), address);
             t = avahi_string_list_to_string(txt);
@@ -92,10 +90,10 @@ static void resolve_callback(
                     host_name, port, a,
                     t,
                     avahi_string_list_get_service_cookie(txt),
-                    avahi_server_is_service_local(server, interface, protocol, name, type, domain),
-                    !!(flags & AVAHI_LOOKUP_CALLBACK_WIDE_AREA),
-                    !!(flags & AVAHI_LOOKUP_CALLBACK_MULTICAST),
-                    !!(flags & AVAHI_LOOKUP_CALLBACK_CACHED));
+                    !!(flags & AVAHI_LOOKUP_RESULT_LOCAL),
+                    !!(flags & AVAHI_LOOKUP_RESULT_WIDE_AREA),
+                    !!(flags & AVAHI_LOOKUP_RESULT_MULTICAST),
+                    !!(flags & AVAHI_LOOKUP_RESULT_CACHED));
             avahi_free(t);
         }
     }
@@ -122,9 +120,8 @@ static void browse_callback(
     switch (event) {
 
         case AVAHI_BROWSER_FAILURE:
-        case AVAHI_BROWSER_NOT_FOUND:
             
-            fprintf(stderr, "(Browser) %s\n", event == AVAHI_BROWSER_FAILURE ? "FAILURE" : "NOT_FOUND");
+            fprintf(stderr, "(Browser) %s\n", avahi_strerror(avahi_server_errno(server)));
             avahi_simple_poll_quit(simple_poll);
             return;
 
@@ -154,7 +151,7 @@ static void browse_callback(
 
 int main(int argc, char*argv[]) {
     AvahiServerConfig config;
-    AvahiSServiceBrowser *sb;
+    AvahiSServiceBrowser *sb = NULL;
     int error;
     int ret = 1;
 
@@ -198,9 +195,7 @@ int main(int argc, char*argv[]) {
     }
     
     /* Run the main loop */
-    for (;;)
-        if (avahi_simple_poll_iterate(simple_poll, -1) != 0)
-            break;
+    avahi_simple_poll_loop(simple_poll);
     
     ret = 0;