X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fbrowse.c;h=16d89548442ac1c3ed8f813f04170314718103c5;hb=511bbee5e4da8e71b5da8521a162941398ebfdba;hp=e7e01d1ef790ba35595c881f629461fa3c3e93ae;hpb=6b391bb81f0dce0193a722254016b26c12a17643;p=catta diff --git a/avahi-core/browse.c b/avahi-core/browse.c index e7e01d1..16d8954 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -35,8 +35,10 @@ #include "browse.h" #include "log.h" #include "querier.h" +#include "domain-util.h" +#include "rr-util.h" -#define AVAHI_MAX_LOOKUPS_PER_BROWSER 15 +#define AVAHI_LOOKUPS_PER_BROWSER_MAX 15 struct AvahiSRBLookup { AvahiSRecordBrowser *record_browser; @@ -92,7 +94,7 @@ static AvahiSRBLookup* lookup_new( assert(AVAHI_IF_VALID(interface)); assert(AVAHI_PROTO_VALID(protocol)); - if (b->n_lookups >= AVAHI_MAX_LOOKUPS_PER_BROWSER) + if (b->n_lookups >= AVAHI_LOOKUPS_PER_BROWSER_MAX) /* We don't like cyclic CNAMEs */ return NULL; @@ -193,7 +195,6 @@ static void browser_cancel(AvahiSRecordBrowser *b) { } } - static void lookup_wide_area_callback( AvahiWideAreaLookupEngine *e, AvahiBrowserEvent event, @@ -206,6 +207,7 @@ static void lookup_wide_area_callback( assert(e); assert(l); + assert(l->ref >= 1); b = l->record_browser; @@ -278,7 +280,6 @@ static void lookup_multicast_callback( lookup_handle_cname(l, interface, protocol, b->flags, r); else { /* It's a normal record, so let's call the user callback */ - assert(avahi_key_equal(b->key, l->key)); if (avahi_server_is_record_local(b->server, interface, protocol, r)) flags |= AVAHI_LOOKUP_RESULT_LOCAL; @@ -421,6 +422,7 @@ static void lookup_handle_cname(AvahiSRBLookup *l, AvahiIfIndex interface, Avahi l->cname_lookups = avahi_rlist_prepend(l->cname_lookups, lookup_ref(n)); lookup_go(n); + lookup_unref(n); } static void lookup_drop_cname(AvahiSRBLookup *l, AvahiIfIndex interface, AvahiProtocol protocol, AvahiLookupFlags flags, AvahiRecord *r) { @@ -453,7 +455,7 @@ static void lookup_drop_cname(AvahiSRBLookup *l, AvahiIfIndex interface, AvahiPr } } -static void defer_callback(AvahiTimeEvent *e, void *userdata) { +static void defer_callback(AVAHI_GCC_UNUSED AvahiTimeEvent *e, void *userdata) { AvahiSRecordBrowser *b = userdata; int n;