X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fresolve-address.c;h=a4ed594deb57773eee7d6f16fa7d587537088340;hb=38b45921cd1d33119f1c06979a57bcfe982e22da;hp=a4870aa0d3b8856400b1591c44e59373c553de7e;hpb=22a61b042376903deada022e7585e0585aaa7d43;p=catta diff --git a/avahi-core/resolve-address.c b/avahi-core/resolve-address.c index a4870aa..a4ed594 100644 --- a/avahi-core/resolve-address.c +++ b/avahi-core/resolve-address.c @@ -23,7 +23,7 @@ #include #endif -#include "resolve.h" +#include "browse.h" #include "util.h" struct AvahiAddressResolver { @@ -46,8 +46,10 @@ static void finish(AvahiAddressResolver *r, gint interface, guchar protocol, Ava avahi_record_browser_free(r->record_browser); r->record_browser = NULL; - avahi_time_event_queue_remove(r->server->time_event_queue, r->time_event); - r->time_event = NULL; + if (r->time_event) { + avahi_time_event_queue_remove(r->server->time_event_queue, r->time_event); + r->time_event = NULL; + } r->callback(r, interface, protocol, event, &r->address, record ? record->data.ptr.name : NULL, r->userdata); } @@ -73,7 +75,7 @@ static void time_event_callback(AvahiTimeEvent *e, void *userdata) { g_assert(e); g_assert(r); - finish(r, -1, AF_UNSPEC, AVAHI_RESOLVER_TIMEOUT, NULL); + finish(r, -1, AVAHI_PROTO_UNSPEC, AVAHI_RESOLVER_TIMEOUT, NULL); } AvahiAddressResolver *avahi_address_resolver_new(AvahiServer *server, gint interface, guchar protocol, const AvahiAddress *address, AvahiAddressResolverCallback callback, gpointer userdata) { @@ -86,7 +88,7 @@ AvahiAddressResolver *avahi_address_resolver_new(AvahiServer *server, gint inter g_assert(address); g_assert(callback); - g_assert(address->family == AF_INET || address->family == AF_INET6); + g_assert(address->family == AVAHI_PROTO_INET || address->family == AVAHI_PROTO_INET6); r = g_new(AvahiAddressResolver, 1); r->server = server; @@ -94,7 +96,12 @@ AvahiAddressResolver *avahi_address_resolver_new(AvahiServer *server, gint inter r->callback = callback; r->userdata = userdata; - if (address->family == AF_INET) + avahi_elapse_time(&tv, 1000, 0); + r->time_event = avahi_time_event_queue_add(server->time_event_queue, &tv, time_event_callback, r); + + AVAHI_LLIST_PREPEND(AvahiAddressResolver, resolver, server->address_resolvers, r); + + if (address->family == AVAHI_PROTO_INET) n = avahi_reverse_lookup_name_ipv4(&address->data.ipv4); else n = avahi_reverse_lookup_name_ipv6_arpa(&address->data.ipv6); @@ -104,11 +111,6 @@ AvahiAddressResolver *avahi_address_resolver_new(AvahiServer *server, gint inter r->record_browser = avahi_record_browser_new(server, interface, protocol, k, record_browser_callback, r); avahi_key_unref(k); - - avahi_elapse_time(&tv, 1000, 0); - r->time_event = avahi_time_event_queue_add(server->time_event_queue, &tv, time_event_callback, r); - - AVAHI_LLIST_PREPEND(AvahiAddressResolver, resolver, server->address_resolvers, r); return r; }