X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fresolve-service.c;h=0ecd388bda8681248fd4acc3981c639a55a9f07f;hb=5867849876e19996fd05a0d4917cb739904519c1;hp=173c34b192f39390ffe4cced34addab740aea77f;hpb=bec8eb97079a9f9a835b4629fb6144af0eaa1635;p=catta diff --git a/avahi-core/resolve-service.c b/avahi-core/resolve-service.c index 173c34b..0ecd388 100644 --- a/avahi-core/resolve-service.c +++ b/avahi-core/resolve-service.c @@ -84,12 +84,12 @@ static void finish(AvahiSServiceResolver *r, AvahiResolverEvent event) { switch (r->address_record->key->type) { case AVAHI_DNS_TYPE_A: - a.family = AVAHI_PROTO_INET; + a.proto = AVAHI_PROTO_INET; a.data.ipv4 = r->address_record->data.a.address; break; case AVAHI_DNS_TYPE_AAAA: - a.family = AVAHI_PROTO_INET6; + a.proto = AVAHI_PROTO_INET6; a.data.ipv6 = r->address_record->data.aaaa.address; break; @@ -157,8 +157,16 @@ static void record_browser_callback(AvahiSRecordBrowser*rr, AvahiIfIndex interfa if (!r->srv_record) { r->srv_record = avahi_record_ref(record); changed = 1; - - assert(!r->record_browser_a && !r->record_browser_aaaa); + + if (r->record_browser_a) { + avahi_s_record_browser_free(r->record_browser_a); + r->record_browser_a = NULL; + } + + if (r->record_browser_aaaa) { + avahi_s_record_browser_free(r->record_browser_aaaa); + r->record_browser_aaaa = NULL; + } if (r->address_protocol == AVAHI_PROTO_INET || r->address_protocol == AVAHI_PROTO_UNSPEC) { AvahiKey *k = avahi_key_new(r->srv_record->data.srv.name, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_A);