Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 28 Jun 2004 01:30:07 +0000 (01:30 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 28 Jun 2004 01:30:07 +0000 (01:30 +0000)
2004-06-27  Ulrich Drepper  <drepper@redhat.com>

* resolv/resolv.h (RES_NOIP6DOTINT): Define.
* resolv/res_init.c (res_setoptions): Handle no-ip6-dotint option.
* resolv/gethnamaddr.c (gethostbyaddr): Don't lookup with .ip6.int
if RES_NOIP6DOTINT flag is set.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Likewise.

ChangeLog
resolv/gethnamaddr.c
resolv/nss_dns/dns-host.c
resolv/res_init.c
resolv/resolv.h

index fa648ca..49256a9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-06-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * resolv/resolv.h (RES_NOIP6DOTINT): Define.
+       * resolv/res_init.c (res_setoptions): Handle no-ip6-dotint option.
+       * resolv/gethnamaddr.c (gethostbyaddr): Don't lookup with .ip6.int
+       if RES_NOIP6DOTINT flag is set.
+       * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Likewise.
+
 2004-06-25  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/powerpc/fcntl.c: Move to...
index 2172375..c93ca51 100644 (file)
@@ -720,7 +720,7 @@ gethostbyaddr(addr, len, af)
 
        n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, 1024,
                              &buf.ptr);
-       if (n < 0 && af == AF_INET6) {
+       if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) {
                strcpy(qp, "ip6.int");
                n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf,
                                      buf.buf != orig_buf ? MAXPACKET : 1024,
index ab6cc79..0424cb9 100644 (file)
@@ -337,7 +337,7 @@ _nss_dns_gethostbyaddr_r (const void *addr, socklen_t len, int af,
 
   n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf,
                         1024, &host_buffer.ptr);
-  if (n < 0 && af == AF_INET6)
+  if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0)
     {
       strcpy (qp, "ip6.int");
       n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf,
index cbab7ca..d0559c3 100644 (file)
@@ -492,6 +492,9 @@ res_setoptions(res_state statp, const char *options, const char *source) {
                } else if (!strncmp(cp, "ip6-bytestring",
                                    sizeof("ip6-bytestring") - 1)) {
                        statp->options |= RES_USEBSTRING;
+               } else if (!strncmp(cp, "no-ip6-dotint",
+                                   sizeof("no-ip6-dotint") - 1)) {
+                       statp->options |= RES_NOIP6DOTINT;
                } else if (!strncmp(cp, "rotate", sizeof("rotate") - 1)) {
                        statp->options |= RES_ROTATE;
                } else if (!strncmp(cp, "no-check-names",
index 8d37d42..010d7dd 100644 (file)
@@ -201,6 +201,8 @@ struct res_sym {
 #define        RES_BLAST       0x00020000      /* blast all recursive servers */
 #define RES_USEBSTRING 0x00040000      /* IPv6 reverse lookup with byte
                                           strings */
+#define RES_NOIP6DOTINT        0x00080000      /* Do not use .ip6.int in IPv6
+                                          reverse lookup */
 
 #define RES_DEFAULT    (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH)