]> 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:34:53 +0000 (03:34 +0000)
committerMark Andrews <marka@isc.org>
Fri, 17 Oct 2008 03:34:53 +0000 (03:34 +0000)
                        for IPv4 and IPv6. [RT #18738]

CHANGES
lib/dns/adb.c

diff --git a/CHANGES b/CHANGES
index 14f56f3e9c6396c6198a945a9b5fa00aaa9a088d..1aca38dd800ac85dbf0e2578c6d50e3c9c8b0a31 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]
+
 2463.   [port]          linux: POSIX doesn't include the IPv6 Advanced Socket
                        API and glibc hides parts of the IPv6 Advanced Socket
                        API as a result.  This is stupid as it breaks how the
index 28b8dfd7d588436aaf4d7091a069e16cf3e1af88..49f60ecbf8875598873022f37481b7484424ac37 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: adb.c,v 1.181.2.11.2.40 2008/10/15 04:26:35 marka Exp $ */
+/* $Id: adb.c,v 1.181.2.11.2.41 2008/10/17 03:34:53 marka Exp $ */
 
 /*
  * Implementation notes
@@ -1731,8 +1731,11 @@ copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_name_t *zone,
                        bucket = entry->lock_bucket;
                        LOCK(&adb->entrylocks[bucket]);
 
-                       if (entry_is_bad_for_zone(adb, entry, zone, now))
+                       if (!FIND_RETURNLAME(find)
+                           && entry_is_bad_for_zone(adb, entry, zone, now)) {
+                               find->options |= DNS_ADBFIND_LAMEPRUNED;
                                goto nextv6;
+                       }
                        addrinfo = new_adbaddrinfo(adb, entry, find->port);
                        if (addrinfo == NULL) {
                                find->partial_result |= DNS_ADBFIND_INET6;