X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fbrowse.c;h=a133c62bdcc5603b39a2c5814115cbd0c4af0c99;hb=9ca377e8bc8ef73714180143c24223016acbc845;hp=a6ba7cabf0a698f0d8c22054d578aa7257ed1e6c;hpb=1ffedb586bd2fb6daa3970304fac7c5b415cd38f;p=catta diff --git a/avahi-core/browse.c b/avahi-core/browse.c index a6ba7ca..a133c62 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -222,7 +222,6 @@ static void lookup_wide_area_callback( abort(); case AVAHI_BROWSER_ALL_FOR_NOW: - case AVAHI_BROWSER_NOT_FOUND: case AVAHI_BROWSER_FAILURE: b->callback(b, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, event, NULL, flags, b->userdata); @@ -292,7 +291,6 @@ static void lookup_multicast_callback( break; case AVAHI_BROWSER_CACHE_EXHAUSTED: - case AVAHI_BROWSER_NOT_FOUND: case AVAHI_BROWSER_FAILURE: /* Not defined for multicast DNS */ abort(); @@ -464,9 +462,11 @@ static void defer_callback(AvahiTimeEvent *e, void *userdata) { if (n < 0) { /* sending of the initial query failed */ + avahi_server_set_errno(b->server, AVAHI_ERR_FAILURE); + b->callback( b, b->interface, b->protocol, AVAHI_BROWSER_FAILURE, NULL, - b->flags & AVAHI_LOOKUP_USE_WIDE_AREA ? AVAHI_LOOKUP_CALLBACK_WIDE_AREA : AVAHI_LOOKUP_CALLBACK_MULTICAST, + b->flags & AVAHI_LOOKUP_USE_WIDE_AREA ? AVAHI_LOOKUP_RESULT_WIDE_AREA : AVAHI_LOOKUP_RESULT_MULTICAST, b->userdata); avahi_s_record_browser_cancel(b); @@ -476,7 +476,7 @@ static void defer_callback(AvahiTimeEvent *e, void *userdata) { /* Tell the client that we're done with the cache */ b->callback( b, b->interface, b->protocol, AVAHI_BROWSER_CACHE_EXHAUSTED, NULL, - b->flags & AVAHI_LOOKUP_USE_WIDE_AREA ? AVAHI_LOOKUP_CALLBACK_WIDE_AREA : AVAHI_LOOKUP_CALLBACK_MULTICAST, + b->flags & AVAHI_LOOKUP_USE_WIDE_AREA ? AVAHI_LOOKUP_RESULT_WIDE_AREA : AVAHI_LOOKUP_RESULT_MULTICAST, b->userdata); if (!b->dead && b->root_lookup && b->root_lookup->flags & AVAHI_LOOKUP_USE_WIDE_AREA && n > 0) { @@ -485,7 +485,7 @@ static void defer_callback(AvahiTimeEvent *e, void *userdata) { * entries, we assume that it is complete, and tell the user * so by firing ALL_FOR_NOW. */ - b->callback(b, b->interface, b->protocol, AVAHI_BROWSER_ALL_FOR_NOW, NULL, AVAHI_LOOKUP_CALLBACK_WIDE_AREA, b->userdata); + b->callback(b, b->interface, b->protocol, AVAHI_BROWSER_ALL_FOR_NOW, NULL, AVAHI_LOOKUP_RESULT_WIDE_AREA, b->userdata); } } @@ -502,13 +502,6 @@ void avahi_s_record_browser_restart(AvahiSRecordBrowser *b) { } } -#define CHECK_VALIDITY_RETURN_NULL(server, expression, error) { \ - if (!(expression)) { \ - avahi_server_set_errno((server), (error)); \ - return NULL; \ - } \ -} - AvahiSRecordBrowser *avahi_s_record_browser_new( AvahiServer *server, AvahiIfIndex interface, @@ -524,11 +517,12 @@ AvahiSRecordBrowser *avahi_s_record_browser_new( assert(key); assert(callback); - CHECK_VALIDITY_RETURN_NULL(server, AVAHI_IF_VALID(interface), AVAHI_ERR_INVALID_INTERFACE); - CHECK_VALIDITY_RETURN_NULL(server, !avahi_key_is_pattern(key), AVAHI_ERR_IS_PATTERN); - CHECK_VALIDITY_RETURN_NULL(server, avahi_key_is_valid(key), AVAHI_ERR_INVALID_KEY); - CHECK_VALIDITY_RETURN_NULL(server, AVAHI_VALID_FLAGS(flags, AVAHI_LOOKUP_USE_WIDE_AREA|AVAHI_LOOKUP_USE_MULTICAST), AVAHI_ERR_INVALID_FLAGS); - CHECK_VALIDITY_RETURN_NULL(server, !(flags & AVAHI_LOOKUP_USE_WIDE_AREA) || !(flags & AVAHI_LOOKUP_USE_MULTICAST), AVAHI_ERR_INVALID_FLAGS); + AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_IF_VALID(interface), AVAHI_ERR_INVALID_INTERFACE); + AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_PROTO_VALID(protocol), AVAHI_ERR_INVALID_PROTOCOL); + AVAHI_CHECK_VALIDITY_RETURN_NULL(server, !avahi_key_is_pattern(key), AVAHI_ERR_IS_PATTERN); + AVAHI_CHECK_VALIDITY_RETURN_NULL(server, avahi_key_is_valid(key), AVAHI_ERR_INVALID_KEY); + AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_FLAGS_VALID(flags, AVAHI_LOOKUP_USE_WIDE_AREA|AVAHI_LOOKUP_USE_MULTICAST), AVAHI_ERR_INVALID_FLAGS); + AVAHI_CHECK_VALIDITY_RETURN_NULL(server, !(flags & AVAHI_LOOKUP_USE_WIDE_AREA) || !(flags & AVAHI_LOOKUP_USE_MULTICAST), AVAHI_ERR_INVALID_FLAGS); if (!(b = avahi_new(AvahiSRecordBrowser, 1))) { avahi_server_set_errno(server, AVAHI_ERR_NO_MEMORY); @@ -543,7 +537,6 @@ AvahiSRecordBrowser *avahi_s_record_browser_new( b->flags = flags; b->callback = callback; b->userdata = userdata; - b->n_lookups = 0; AVAHI_LLIST_HEAD_INIT(AvahiSRBLookup, b->lookups); b->root_lookup = NULL; @@ -569,9 +562,6 @@ void avahi_s_record_browser_cancel(AvahiSRecordBrowser *b) { avahi_time_event_free(b->defer_time_event); b->defer_time_event = NULL; } - - - } void avahi_s_record_browser_free(AvahiSRecordBrowser *b) {