See https://qa.mandriva.com/show_bug.cgi?id=58834 Patch from bug report, updated for glibc 2.11 in Mandriva diff --git a/posix/gai.conf b/posix/gai.conf index 195287e..b09ba10 100644 --- a/posix/gai.conf +++ b/posix/gai.conf @@ -56,9 +56,7 @@ # # scopev4 <mask> <value> # Add another rule to the RFC 3484 scope table for IPv4 addresses. -# By default the scope IDs described in section 3.2 in RFC 3484 are -# used. Changing these defaults should hardly ever be necessary. -# The defaults are equivalent to: +# The definitions in RFC 3484 are equivalent to: # #scopev4 ::ffff:169.254.0.0/112 2 #scopev4 ::ffff:127.0.0.0/104 2 @@ -66,3 +64,12 @@ #scopev4 ::ffff:172.16.0.0/108 5 #scopev4 ::ffff:192.168.0.0/112 5 #scopev4 ::ffff:0.0.0.0/96 14 +# +# For sites which use site-local IPv4 addresses behind NAT there is +# the problem that even if IPv4 addresses are preferred they do not +# have the same scope and are therefore not sorted first. Therefore, +# the following settings are used by default on this system: +# +#scopev4 ::ffff:169.254.0.0/112 2 +#scopev4 ::ffff:127.0.0.0/104 2 +#scopev4 ::ffff:0.0.0.0/96 14 diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 2e0c724..3eb5971 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -1099,10 +1099,12 @@ static const struct scopeentry /* Link-local addresses: scope 2. */ { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 }, { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 }, +#if 0 /* Site-local addresses: scope 5. */ { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 }, { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 }, { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 }, +#endif /* Default: scope 14. */ { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } };