getaddrinfo() and resolver problem
I'm trying to use the .local domain over IPv6 via the avahi-daemon on Ubuntu 9.04.
I've connected 2 computers linked with a switch, that's my lab. In both of them the eth0 interface has no IPv4 configured. They only have an automatic IPv6 address in the local scope, something beginning with fe80::/64.
This are my test from computer-A:
1 - "ping6 -Ieth0 computer-B.local", work fine, it can resolve the IPv6 address of computer-B and ping-pong runs quite well.
2 - "getent hosts computer-B.local", works fine, I get the IPv6 address of computer-B.
3 - "smbclient -L computer-B.local", DOESN'T WORK, it can't resolve computer-B IPv6 address.
I've used wireshark, in case 1 it shows mdns queries for "AAAA" records (which is correct for IPv6), in case 2 is the same.
In case 3 I see mdns queries for "A" records (which is correct for IPv4) addresses, but nothing for IPv6.
I've posted this in the samba list, and Jeremy Allison told me they use "getaddrinfo()" for name resolving, which I've seen in the samba code, so the problem must be somewhere in the resolver.
My nsswitch.conf hosts line is:
hosts files mdns_minimal [NOTFOUND=return] dns mdns
Any ideas about how getaddrinfo works internally? I've made a small "C" code to test it and it can only resolve IPv6 addresses if I specify AF_INET6, it doesn't work with AF_UNSPEC which the manual sais it should.