From 1080954fbcf54814875eb988673004d25a1655cf Mon Sep 17 00:00:00 2001
From: Ulrich Drepper <drepper@redhat.com>
Date: Tue, 6 Apr 2010 12:27:58 +0200
Subject: [PATCH] Assign global scope to RFC 1918 addresses

---
 ChangeLog                   | 6 ++++++
 posix/gai.conf              | 6 ++++--
 sysdeps/posix/getaddrinfo.c | 2 ++
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index db3026f0f3..082130d761 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-04-06  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/posix/getaddrinfo.c (default_scopes): Assign global
+	scope to RFC 1918 addresses.
+	* posix/gai.conf: Document difference from RFC 3484.
+
 2010-04-05  Thomas Schwinge  <thomas@schwinge.name>
 
 	* sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/.
diff --git a/posix/gai.conf b/posix/gai.conf
index 195287e1c8..bd40684300 100644
--- a/posix/gai.conf
+++ b/posix/gai.conf
@@ -41,7 +41,7 @@
 #
 # precedence  <mask>   <value>
 #    Add another rule to the RFC 3484 precedence table.  See section 2.1
-#    and 10.3 in RFC 3484.  The default is:
+#    and 10.3 in RFC 3484.  The RFC requires:
 #
 #precedence  ::1/128       50
 #precedence  ::/0          40
@@ -58,7 +58,7 @@
 #    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 1918 are equivalent to:
 #
 #scopev4 ::ffff:169.254.0.0/112  2
 #scopev4 ::ffff:127.0.0.0/104    2
@@ -75,3 +75,5 @@
 #scopev4 ::ffff:169.254.0.0/112  2
 #scopev4 ::ffff:127.0.0.0/104    2
 #scopev4 ::ffff:0.0.0.0/96       14
+#
+#    This is what the Red Hat setting currently uses.
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 2e0c7248f0..3eb59712f6 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 }
   };