patches/glibc/2.9/170-2.10-dns-no-gethostbyname4.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jan 17 23:06:02 2010 +0100 (2010-01-17)
changeset 1740 c57458bb354d
parent 1201 c9967a6e3b25
permissions -rw-r--r--
configure: do not require hg when configuring in an hg clone

When configuring in an hg clone, we need hg to compute the version string.
It can happen that users do not have Mercurial (eg. if they got a snapshot
rather that they did a full clone). In this case, we can still run, of
course, so simply fill the version string with a sufficiently explicit
value, that does not require hg. The date is a good candidate.
yann@1201
     1
Original patch from: gentoo/src/patchsets/glibc/2.9/0080_all_glibc-2.10-dns-no-gethostbyname4.patch
yann@1201
     2
yann@1201
     3
-= BEGIN original header =-
yann@1201
     4
http://sourceware.org/bugzilla/show_bug.cgi?id=7060
yann@1201
     5
http://bugs.gentoo.org/250468
yann@1201
     6
yann@1201
     7
The gethostbyname4() lookup method is problematic since it fires out both
yann@1201
     8
the A and AAAA DNS queries in parallel and over the same socket. This
yann@1201
     9
should work in theory, but it turns out that many cheap DSL modems and
yann@1201
    10
similar devices have buggy DNS servers - if the AAAA query arrives too
yann@1201
    11
quickly after the A query, the server will generate only a single reply
yann@1201
    12
with the A query id but returning an error for the AAAA query; we get
yann@1201
    13
stuck waiting for the second reply.
yann@1201
    14
yann@1201
    15
For gethostbyname4() users affected, disabling IPv6 in the system might
yann@1201
    16
work around the issue, unfortunately it only helps with applications
yann@1201
    17
using AI_ADDRCONFIG (e.g. Firefox); some (notably e.g. Pidgin) neglect
yann@1201
    18
to do that.
yann@1201
    19
yann@1201
    20
Real fix should be using separate ports for the A and AAAA queries.
yann@1201
    21
yann@1201
    22
-= END original header =-
yann@1201
    23
yann@1201
    24
diff -durN glibc-2_9.orig/resolv/Versions glibc-2_9/resolv/Versions
yann@1201
    25
--- glibc-2_9.orig/resolv/Versions	2008-08-01 19:15:34.000000000 +0200
yann@1201
    26
+++ glibc-2_9/resolv/Versions	2009-02-02 22:00:46.000000000 +0100
yann@1201
    27
@@ -102,7 +102,7 @@
yann@1201
    28
     _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
yann@1201
    29
     _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r;
yann@1201
    30
     _nss_dns_gethostbyaddr2_r;
yann@1201
    31
-    _nss_dns_gethostbyname4_r;
yann@1201
    32
+#    _nss_dns_gethostbyname4_r;
yann@1201
    33
   }
yann@1201
    34
 }
yann@1201
    35