[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r4055 - in glibc-package/trunk/debian: . patches patches/any



Author: aurel32
Date: 2010-01-05 23:39:10 +0000 (Tue, 05 Jan 2010)
New Revision: 4055

Added:
   glibc-package/trunk/debian/patches/any/cvs-resolv-bindv6only.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * Add debian/patches/any/cvs-resolv-bindv6only.diff to not use 
    IPV4-mapped addresses in the resolver code.  Closes: #563552.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2010-01-05 23:14:56 UTC (rev 4054)
+++ glibc-package/trunk/debian/changelog	2010-01-05 23:39:10 UTC (rev 4055)
@@ -14,11 +14,13 @@
     IPv6 name server in resolv.conf.
   * Add debian/patches/any/cvs-resolv-uninitialized.diff to fix an 
     uninitialized variable in resolv code.
+  * Add debian/patches/any/cvs-resolv-bindv6only.diff to not use 
+    IPV4-mapped addresses in the resolver code.  Closes: #563552.
 
   [ Petr Salinger]
   * kfreebsd/local-sysdeps.diff: update to revision 2907 (from glibc-bsd).
 
- -- Aurelien Jarno <aurel32@debian.org>  Wed, 06 Jan 2010 00:13:16 +0100
+ -- Aurelien Jarno <aurel32@debian.org>  Wed, 06 Jan 2010 00:34:08 +0100
 
 eglibc (2.10.2-3) unstable; urgency=low
 

Added: glibc-package/trunk/debian/patches/any/cvs-resolv-bindv6only.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/cvs-resolv-bindv6only.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/any/cvs-resolv-bindv6only.diff	2010-01-05 23:39:10 UTC (rev 4055)
@@ -0,0 +1,33 @@
+2009-01-06  Aurelien Jarno <aurelien@aurel32.net>
+
+        * resolv/res_send.c (__libc_res_nsend): Don't use IPv4-mapped
+	addresses.  Create PF_INET sockets for IPv4 addresses and PF_INET6
+	sockets for IPv6 ones.
+
+diff --git a/resolv/res_send.c b/resolv/res_send.c
+index e2bbfcc..b2c9cf5 100644
+--- a/resolv/res_send.c
++++ b/resolv/res_send.c
+@@ -914,7 +914,7 @@ reopen (res_state statp, int *terrno, int ns)
+ 		struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns];
+ 
+ 		/* only try IPv6 if IPv6 NS and if not failed before */
+-		if ((EXT(statp).nscount6 > 0) && !statp->ipv6_unavail) {
++		if (nsap->sin6_family == AF_INET6 && !statp->ipv6_unavail) {
+ 			if (__builtin_expect (__have_o_nonblock >= 0, 1)) {
+ 				EXT(statp).nssocks[ns] =
+ 				  socket(PF_INET6, SOCK_DGRAM|SOCK_NONBLOCK,
+@@ -931,12 +931,7 @@ reopen (res_state statp, int *terrno, int ns)
+ 				  socket(PF_INET6, SOCK_DGRAM, 0);
+ 			if (EXT(statp).nssocks[ns] < 0)
+ 			    statp->ipv6_unavail = errno == EAFNOSUPPORT;
+-			/* If IPv6 socket and nsap is IPv4, make it
+-			   IPv4-mapped */
+-			else if (nsap->sin6_family == AF_INET)
+-			    convaddr4to6(nsap);
+-		}
+-		if (EXT(statp).nssocks[ns] < 0) {
++		} else if (nsap->sin6_family == AF_INET) {
+ 			if (__builtin_expect (__have_o_nonblock >= 0, 1)) {
+ 				EXT(statp).nssocks[ns]
+ 				  = socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK,

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2010-01-05 23:14:56 UTC (rev 4054)
+++ glibc-package/trunk/debian/patches/series	2010-01-05 23:39:10 UTC (rev 4055)
@@ -221,5 +221,6 @@
 any/local-ntp-update.diff
 any/cvs-malloc_info-output.diff
 #any/cvs-futimens.diff
-patches/any/cvs-resolv-init.diff
-patches/any/cvs-resolv-uninitialized.diff
+any/cvs-resolv-init.diff
+any/cvs-resolv-uninitialized.diff
+any/cvs-resolv-bindv6only.diff


Reply to: