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: