Hi, Whenever I execute getaddrinfo() function from libc with a 'hostname.local' address as an argument and AF_INET6 as ai.ai_family, I get an IPv4 address, even when 'avahi-resolve-host-name -6 hostname.local' returns an IPv6 address.
I've written a test program getaddrinfo.c[1] which does a getaddrinfo() function call and prints the result on the terminal. Following is the patch to port dns/nss_mdns which will fix this issue: ---->8---->8----- diff -urN /usr/ports/dns/nss_mdns/Makefile nss_mdns/Makefile --- /usr/ports/dns/nss_mdns/Makefile 2008-01-03 17:53:37.000000000 +0530 +++ nss_mdns/Makefile 2008-04-27 01:22:10.000000000 +0530 @@ -7,7 +7,7 @@ PORTNAME= nss_mdns PORTVERSION= 0.9 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= dns ipv6 MASTER_SITES= http://0pointer.de/lennart/projects/nss-mdns/ DISTNAME= nss-mdns-${PORTVERSION} diff -urN /usr/ports/dns/nss_mdns/files/patch-src__bsdnss.c nss_mdns/files/patch-src__bsdnss.c --- /usr/ports/dns/nss_mdns/files/patch-src__bsdnss.c 2007-04-12 16:13:15.000000000 +0530 +++ nss_mdns/files/patch-src__bsdnss.c 2008-04-27 01:19:18.000000000 +0530 @@ -197,7 +197,7 @@ + * 2. Map hostent to addrinfo. + * 3. Hand-off buffer to libc. + */ -+ status = _nss_mdns_gethostbyname_r(name, hp, buffer, mbuflen, ++ status = _nss_mdns_gethostbyname2_r(name, pai->ai_family, hp, buffer, mbuflen, + &_errno, &_h_errno); + status = __nss_compat_result(status, _errno); + ----8<----8<---- If required I'll submit a PR for this. References: [1] - http://pastebin.com/f20d45049 Thanks -- Ashish Shukla आशीष शुक्ल http://wahjava.wordpress.com/ ·-- ·- ···· ·--- ·- ···- ·- ·--·-· --· -- ·- ·· ·-·· ·-·-·- -·-· --- --
pgpR2xVXUou89.pgp
Description: PGP signature