]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2465. [bug] Adb's handling of lame addresses was different
authorMark Andrews <marka@isc.org>
Fri, 17 Oct 2008 03:23:13 +0000 (03:23 +0000)
committerMark Andrews <marka@isc.org>
Fri, 17 Oct 2008 03:23:13 +0000 (03:23 +0000)
                        for IPv4 and IPv6. [RT #18738]

CHANGES
lib/dns/adb.c

diff --git a/CHANGES b/CHANGES
index 313ae5c9e9efbc91eca8753fe199c3c176f89583..700ccb80e00ec8565e9d170326561431f9ba1514 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2465.  [bug]           Adb's handling of lame addresses was different
+                       for IPv4 and IPv6. [RT #18738]
+
 2464.  [port]          linux: check that a capability is present before
                        trying to set it. [RT #18135]
 
index f06b4a8b8a90450049fe1aad56c9bacea10ef554..a41515cdfdeb09a09f0e37747fe88dcc1dfe073b 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: adb.c,v 1.242 2008/10/15 04:22:30 marka Exp $ */
+/* $Id: adb.c,v 1.243 2008/10/17 03:23:13 marka Exp $ */
 
 /*! \file
  *
@@ -1737,8 +1737,11 @@ copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_name_t *qname,
                        bucket = entry->lock_bucket;
                        LOCK(&adb->entrylocks[bucket]);
 
-                       if (entry_is_lame(adb, entry, qname, qtype, now))
+                       if (!FIND_RETURNLAME(find)
+                           && entry_is_lame(adb, entry, qname, qtype, now)) {
+                               find->options |= DNS_ADBFIND_LAMEPRUNED;
                                goto nextv6;
+                       }
                        addrinfo = new_adbaddrinfo(adb, entry, find->port);
                        if (addrinfo == NULL) {
                                find->partial_result |= DNS_ADBFIND_INET6;