diff options
Diffstat (limited to 'sys-libs/glibc/files/2.3.2/glibc-2.3.2-ipv6-bytestring-fix.patch')
-rw-r--r-- | sys-libs/glibc/files/2.3.2/glibc-2.3.2-ipv6-bytestring-fix.patch | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/sys-libs/glibc/files/2.3.2/glibc-2.3.2-ipv6-bytestring-fix.patch b/sys-libs/glibc/files/2.3.2/glibc-2.3.2-ipv6-bytestring-fix.patch deleted file mode 100644 index fc7ded5d6e32..000000000000 --- a/sys-libs/glibc/files/2.3.2/glibc-2.3.2-ipv6-bytestring-fix.patch +++ /dev/null @@ -1,112 +0,0 @@ ---- libc/resolv/nss_dns/dns-host.c 2003/10/26 08:33:27 1.38 -+++ libc/resolv/nss_dns/dns-host.c 2004/01/15 09:45:57 1.39 -@@ -1,4 +1,4 @@ --/* Copyright (C) 1996-2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+/* Copyright (C) 1996-2003, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Extended from original form by Ulrich Drepper <drepper@cygnus.com>, 1996. - -@@ -298,6 +298,8 @@ - return NSS_STATUS_UNAVAIL; - } - -+ host_buffer.buf = orig_host_buffer = (querybuf *) alloca (1024); -+ - switch (af) - { - case AF_INET: -@@ -305,29 +307,38 @@ - (uaddr[2] & 0xff), (uaddr[1] & 0xff), (uaddr[0] & 0xff)); - break; - case AF_INET6: -- /* XXX Maybe we need an option to select whether to use the nibble -- or the bitfield form. The RFC requires the bitfield form so -- we use it. */ -+ /* Only lookup with the byte string format if the user wants it. */ -+ if (__builtin_expect (_res.options & RES_USEBSTRING, 0)) -+ { -+ qp = stpcpy (qbuf, "\\[x"); -+ for (n = 0; n < IN6ADDRSZ; ++n) -+ qp += sprintf (qp, "%02hhx", uaddr[n]); -+ strcpy (qp, "].ip6.arpa"); -+ n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, -+ host_buffer.buf->buf, 1024, &host_buffer.ptr); -+ if (n >= 0) -+ goto got_it_already; -+ } - qp = qbuf; -- qp = stpcpy (qbuf, "\\[x"); -- for (n = 0; n < IN6ADDRSZ; ++n) -- qp += sprintf (qp, "%02hhx", uaddr[n]); -- strcpy (qp, "].ip6.arpa"); -+ for (n = IN6ADDRSZ - 1; n >= 0; n--) -+ { -+ static const char nibblechar[16] = "0123456789abcdef"; -+ *qp++ = nibblechar[uaddr[n] & 0xf]; -+ *qp++ = '.'; -+ *qp++ = nibblechar[(uaddr[n] >> 4) & 0xf]; -+ *qp++ = '.'; -+ } -+ strcpy(qp, "ip6.arpa"); - break; - default: - /* Cannot happen. */ - break; - } - -- host_buffer.buf = orig_host_buffer = (querybuf *) alloca (1024); -- - n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf, - 1024, &host_buffer.ptr); - if (n < 0 && af == AF_INET6) - { -- qp = qbuf; -- for (n = IN6ADDRSZ - 1; n >= 0; n--) -- qp += sprintf (qp, "%x.%x.", uaddr[n] & 0xf, (uaddr[n] >> 4) & 0xf); - strcpy (qp, "ip6.int"); - n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf, - host_buffer.buf != orig_host_buffer -@@ -342,6 +353,7 @@ - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND; - } - -+ got_it_already: - status = getanswer_r (host_buffer.buf, n, qbuf, T_PTR, result, buffer, buflen, - errnop, h_errnop, 0 /* XXX */); - if (host_buffer.buf != orig_host_buffer) ---- libc/resolv/resolv.h 2002/12/15 23:22:50 1.37 -+++ libc/resolv/resolv.h 2004/01/15 09:41:58 1.38 -@@ -199,6 +199,8 @@ - #define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity. */ - #define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */ - #define RES_BLAST 0x00020000 /* blast all recursive servers */ -+#define RES_USEBSTRING 0x00040000 /* IPv6 reverse lookup with byte -+ strings */ - - #define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH) - ---- libc/resolv/res_debug.c 2002/08/08 02:01:31 1.28 -+++ libc/resolv/res_debug.c 2004/01/15 09:43:35 1.29 -@@ -572,6 +572,10 @@ - case RES_DNSRCH: return "dnsrch"; - case RES_INSECURE1: return "insecure1"; - case RES_INSECURE2: return "insecure2"; -+ case RES_USE_INET6: return "inet6"; -+ case RES_ROTATE: return "rotate"; -+ case RES_NOCHECKNAME: return "no-check-names"; -+ case RES_USEBSTRING: return "ip6-bytstring"; - /* XXX nonreentrant */ - default: sprintf(nbuf, "?0x%lx?", (u_long)option); - return (nbuf); ---- libc/resolv/res_init.c 2003/09/04 12:48:52 1.34 -+++ libc/resolv/res_init.c 2004/01/15 09:44:18 1.35 -@@ -489,6 +489,9 @@ - #endif - } else if (!strncmp(cp, "inet6", sizeof("inet6") - 1)) { - statp->options |= RES_USE_INET6; -+ } else if (!strncmp(cp, "ip6-bytestring", -+ sizeof("ip6-bytestring") - 1)) { -+ statp->options |= RES_USEBSTRING; - } else if (!strncmp(cp, "rotate", sizeof("rotate") - 1)) { - statp->options |= RES_ROTATE; - } else if (!strncmp(cp, "no-check-names", |