From: Mark Andrews Date: Tue, 19 Jun 2007 06:19:29 +0000 (+0000) Subject: 2200. [bug] The search for cached NSEC records was stopping to X-Git-Tag: v9.5.0a6~27 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=6133734cecb05630e32edb63031b95d333df8e48;p=thirdparty%2Fbind9.git 2200. [bug] The search for cached NSEC records was stopping to early leading to excessive DLV queries. [RT #16930] --- diff --git a/CHANGES b/CHANGES index 54ebab16cd8..926fd190dff 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2200. [bug] The search for cached NSEC records was stopping to + early leading to excessive DLV queries. [RT #16930] + 2199. [bug] win32: don't call WSAStartup() while loading dlls. [RT #16911] diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index 5367d1c2d00..6b7d6403eeb 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rbtdb.c,v 1.245 2007/06/18 23:47:41 tbox Exp $ */ +/* $Id: rbtdb.c,v 1.246 2007/06/19 06:19:29 marka Exp $ */ /*! \file */ @@ -3323,7 +3323,8 @@ find_coveringnsec(rbtdb_search_t *search, dns_dbnode_t **nodep, header_prev = header; continue; } - if (NONEXISTENT(header) || NXDOMAIN(header)) { + if (NONEXISTENT(header) || + RBTDB_RDATATYPE_BASE(header->type) == 0) { header_prev = header; continue; } @@ -3349,7 +3350,7 @@ find_coveringnsec(rbtdb_search_t *search, dns_dbnode_t **nodep, result = DNS_R_COVERINGNSEC; } else if (!empty_node) { result = ISC_R_NOTFOUND; - }else + } else result = dns_rbtnodechain_prev(&search->chain, NULL, NULL); unlock_node: