[avahi] Resolving multiple IPV6 address
Kevin Ediger
kevin.ediger at licor.com
Fri Nov 7 07:40:03 PST 2008
Oops... here's the patch inline....
diff -pur avahi-0.6.23-orig/avahi-core/resolve-service.c
avahi-0.6.23/avahi-core/resolve-service.c
--- avahi-0.6.23-orig/avahi-core/resolve-service.c 2008-06-17
18:13:44.000000000 -0500
+++ avahi-0.6.23/avahi-core/resolve-service.c 2008-11-06
17:22:45.000000000 -0600
@@ -252,10 +252,13 @@ static void record_browser_callback(
assert(!(r->user_flags & AVAHI_LOOKUP_NO_ADDRESS));
- if (!r->address_record) {
- r->address_record = avahi_record_ref(record);
- changed = 1;
+ if (r->address_record) {
+ avahi_record_unref(r->address_record);
+ r->address_record = NULL;
}
+
+ r->address_record = avahi_record_ref(record);
+ changed = 1;
break;
default:
Kevin Ediger wrote:
> Hello,
> I'm writing a QT application that uses avahi to resolve IPV4 and IPV6
> addresses. I would like to have avahi return all IPV6 addresses
> registered to a particular host, but I've been unable to resolve more
> than 1. Sometimes I get the link-local and sometimes the globally scoped
> address. I tracked the issue to avahi-core/resolve-service.c in
> record_browser_callback() where it only reports the first address
> resolved. I included a patch that reports all addresses.
>
> In order to resolve all addresses, the client must not free
> AvahiServiceResolver in the callback for the first address as in the
> example program client-browse-services.c in resolve_callback(). If the
> resolver is freed after receiving the first address, no more addresses
> will be sent.
>
> Thanks.
> -Kevin Edger
>
> --
> Kevin Ediger
> Principal Design Engineer, Software
> LI-COR Biosciences
> Lincoln, NE
> kevin.ediger at licor.com
>
>
--
Kevin Ediger
Principal Design Engineer, Software
LI-COR Biosciences
Lincoln, NE
kevin.ediger at licor.com
More information about the avahi
mailing list