Skip to content

Commit

Permalink
* sysdeps/posix/getaddrinfo.c: Add unique labels to the default
Browse files Browse the repository at this point in the history
	RFC3484 precedence table for fec0::/10 and fc00::/7 (site-local
	and ULA respectively). Set precedence for IPv4 address to 10 as
	defined in RFC3484 for preferring IPv6.
	* posix/gai.conf: Update to match the new default tables.
  • Loading branch information
Ulrich Drepper committed May 18, 2006
1 parent 758b9d7 commit 6e2a782
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 8 deletions.
8 changes: 8 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
2006-05-18 David Woodhouse <dwmw2@infradead.org>

* sysdeps/posix/getaddrinfo.c: Add unique labels to the default
RFC3484 precedence table for fec0::/10 and fc00::/7 (site-local
and ULA respectively). Set precedence for IPv4 address to 10 as
defined in RFC3484 for preferring IPv6.
* posix/gai.conf: Update to match the new default tables.

2006-05-18 Jakub Jelinek <jakub@redhat.com>

* nis/nss_compat/compat-pwd.c (internal_setpwent): If nss_set*ent
Expand Down
26 changes: 19 additions & 7 deletions posix/gai.conf
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,29 @@
#label 2002::/16 2
#label ::/96 3
#label ::ffff:0:0/96 4
#label fec0::/10 5
#label fc00::/7 6
#
# This default differs from the tables given in RFC 3484 by handling
# (now obsolete) site-local IPv6 addresses and Unique Local Addresses.
# The reason for this difference is that these addresses are never
# NATed while IPv4 site-local addresses most probably are. Given
# the precedence of IPv6 over IPv4 (see below) on machines having only
# site-local IPv4 and IPv6 addresses a lookup for a global address would
# see the IPv6 be preferred. The result is a long delay because the
# site-local IPv6 addresses cannot be used while the IPv4 address is
# (at least for the foreseeable future) NATed.
#
# precedence <mask> <value>
# Add another rule the to RFC 3484 precendence table. See section 2.1
# Add another rule the to RFC 3484 precedence table. See section 2.1
# and 10.3 in RFC 3484. The default is:
#
#precendence ::1/128 50
#precendence ::/0 40
#precendence 2002::/16 30
#precendence ::/96 20
#precendence ::ffff:0:0/96 10
#precedence ::1/128 50
#precedence ::/0 40
#precedence 2002::/16 30
#precedence ::/96 20
#precedence ::ffff:0:0/96 10
#
# For sites which prefer IPv4 connections change the last line to
#
#precendence ::ffff:0:0/96 100
#precedence ::ffff:0:0/96 100
17 changes: 16 additions & 1 deletion sysdeps/posix/getaddrinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -1202,6 +1202,21 @@ static const struct prefixentry default_labels[] =
= { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } },
96, 4 },
/* The next two entries differ from RFC 3484. We need to treat
IPv6 site-local addresses special because they are never NATed,
unlike site-locale IPv4 addresses. If this would not happen, on
machines which have only IPv4 and IPv6 site-local addresses, the
sorting would prefer the IPv6 site-local addresses, causing
unnecessary delays when trying to connect to a global IPv6 address
through a site-local IPv6 address. */
{ { .in6_u
= { .u6_addr8 = { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } },
10, 5 },
{ { .in6_u
= { .u6_addr8 = { 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } },
7, 6 },
{ { .in6_u
= { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } },
Expand Down Expand Up @@ -1231,7 +1246,7 @@ static const struct prefixentry default_precedence[] =
{ { .in6_u
= { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } },
96, 100 },
96, 10 },
{ { .in6_u
= { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } },
Expand Down

0 comments on commit 6e2a782

Please sign in to comment.