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

CHANGES
lib/dns/adb.c

diff --git a/CHANGES b/CHANGES
index da02f713bdae79faac89ed4585235850b734c612..47dcc8b7930b22257de9dab522dcbed1f9e14ce1 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 133458361f730d0c8d0c500b2fda3c03533e842c..ae5dec85ec33b124dd7756768c7a6f509a7b58ca 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: adb.c,v 1.215.18.23 2008/10/15 04:26:22 marka Exp $ */
+/* $Id: adb.c,v 1.215.18.24 2008/10/17 03:35:14 marka Exp $ */
 
 /*! \file
  *
@@ -1738,8 +1738,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;