Le primidi 1er germinal, an CCXVII, Andreas Henriksson a écrit : > e...@amd64:/tmp$ gcc -o gt gaitest.c && ./gt > When given unspecified protocol, host:(null) and port:12345, as hints... > This machine prefers listening on (in order of preference): > * ipv4 (only) > * ipv6+ipv4
I stumbled on the same problem and found the cause: > g...@amd64:/tmp$ grep '^#*label' /etc/gai.conf > label ::1/128 0 > label ::/0 1 > #label 2002::/16 2 > label ::/96 3 > label ::ffff:0:0/96 4 > label fec0::/10 5 > label fc00::/7 6 > label 2001:0::/32 7 The labels are related to the rule 6 of RFC 3484 (although the comment in the source code of the glibc says rule 5). The algorithm needs to choose between two addresses: - ::0 (IPv6 mildcard) - ::FFFF:0.0.0.0 (mapped IPv4 wildcard) It uses a corresponding source address, respectively: According to the labels above (or the hardcoded ones), the addresses get the following labels: - ::1 (IPv6 looopback) -> 0 - ::0 (IPv6 mildcard) -> 3 - ::FFFF:0.0.0.0 (mapped IPv4 wildcard) -> 4 - ::FFFF:127.0.0.1 (mapped IPv4 loopback) -> 4 The rule 6 says that addresses with the same label for the source and the destination should be selected. I "fixed" the problem by adding the following line to gai.conf: label ::/128 0 I am not completely sure whether this is correct, but it seems to work. Regards, -- Nicolas George
signature.asc
Description: Digital signature