From 1bfe8851c0a2eb1d7e15556bfa21291cd62ee2bc Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 21 Aug 2008 04:43:49 +0000 Subject: [PATCH] 2421. [bug] Handle the special return value of a empty node as if it was a NXRRSET in the validator. [RT #18447] --- CHANGES | 3 +++ lib/dns/validator.c | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index d40ee3c206..bc58180f8f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2421. [bug] Handle the special return value of a empty node as + if it was a NXRRSET in the validator. [RT #18447] + 2420. [func] Add new command line option '-S' for named to specify the max number of sockets. [RT #18493] Use caution: this option may not work for some diff --git a/lib/dns/validator.c b/lib/dns/validator.c index 3bbf0a12f4..87717401bb 100644 --- a/lib/dns/validator.c +++ b/lib/dns/validator.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: validator.c,v 1.160 2008/02/19 17:07:55 each Exp $ */ +/* $Id: validator.c,v 1.161 2008/08/21 04:43:49 marka Exp $ */ #include @@ -939,6 +939,7 @@ view_find(dns_validator_t *val, dns_name_t *name, dns_rdatatype_t type) { } else if (result != ISC_R_SUCCESS && result != DNS_R_NCACHENXDOMAIN && result != DNS_R_NCACHENXRRSET && + result != DNS_R_EMPTYNAME && result != DNS_R_NXRRSET && result != ISC_R_NOTFOUND) { goto notfound; @@ -1196,6 +1197,7 @@ get_key(dns_validator_t *val, dns_rdata_rrsig_t *siginfo) { return (DNS_R_WAIT); } else if (result == DNS_R_NCACHENXDOMAIN || result == DNS_R_NCACHENXRRSET || + result == DNS_R_EMPTYNAME || result == DNS_R_NXDOMAIN || result == DNS_R_NXRRSET) { @@ -1803,8 +1805,9 @@ validatezonekey(dns_validator_t *val) { if (result != ISC_R_SUCCESS) return (result); return (DNS_R_WAIT); - } else if (result == DNS_R_NCACHENXDOMAIN || + } else if (result == DNS_R_NCACHENXDOMAIN || result == DNS_R_NCACHENXRRSET || + result == DNS_R_EMPTYNAME || result == DNS_R_NXDOMAIN || result == DNS_R_NXRRSET) { @@ -2462,6 +2465,7 @@ finddlvsep(dns_validator_t *val, isc_boolean_t resume) { } if (result != DNS_R_NXRRSET && result != DNS_R_NXDOMAIN && + result != DNS_R_EMPTYNAME && result != DNS_R_NCACHENXRRSET && result != DNS_R_NCACHENXDOMAIN) return (result);