From: Mark Andrews Date: Mon, 18 Jun 2007 02:46:22 +0000 (+0000) Subject: 2197. [bug] Add INSIST to catch negative responses which are X-Git-Tag: v9.2.0b1^2~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2109130aa3299eb8acbf680530b91dbec5d11a77;p=thirdparty%2Fbind9.git 2197. [bug] Add INSIST to catch negative responses which are not setting the event result code appropriately. [RT #16909] --- diff --git a/CHANGES b/CHANGES index 0e2611bbe7b..16615e5de6a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,9 @@ +2197. [bug] Add INSIST to catch negative responses which are + not setting the event result code appropriately. + [RT #16909] + 2196. [port] win32: yield processor while waiting for once to - to complete. [RT# 16958] + to complete. [RT #16958] 2194. [bug] Close journal before calling 'done' in xfrin.c. diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 4ab0beb9b63..c00dc159808 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.c,v 1.218.2.49 2007/03/06 01:00:54 marka Exp $ */ +/* $Id: resolver.c,v 1.218.2.50 2007/06/18 02:46:22 marka Exp $ */ #include @@ -628,6 +628,15 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) { dns_rdataset_isassociated(event->rdataset) || fctx->type == dns_rdatatype_any || fctx->type == dns_rdatatype_sig); + + /* + * Negative results must be indicated in event->result. + */ + if (dns_rdataset_isassociated(event->rdataset) && + event->rdataset->type == dns_rdatatype_none) { + INSIST(event->result == DNS_R_NCACHENXDOMAIN || + event->result == DNS_R_NCACHENXRRSET); + } isc_task_sendanddetach(&task, ISC_EVENT_PTR(&event)); }