From: Mark Andrews Date: Tue, 19 Jun 2007 06:21:25 +0000 (+0000) Subject: 2200. [bug] The search for cached NSEC records was stopping to X-Git-Tag: v9.4.2b1~21 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=83bfbd2ba4f427a0864dcd1e4fb80fd1f2616d87;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 02f52e043ac..794d9fce600 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 d3a7605c12f..e880a9464e3 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rbtdb.c,v 1.196.18.46 2007/03/14 06:03:56 marka Exp $ */ +/* $Id: rbtdb.c,v 1.196.18.47 2007/06/19 06:21:25 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: