From: Mark Andrews Date: Mon, 18 Jun 2007 02:34:21 +0000 (+0000) Subject: 2197. [bug] Add INSIST to catch negative responses which are X-Git-Tag: v9.5.0a6~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0cedbe4ab56e00d5827941697418476318cbdeb3;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 8e363749f7f..47afab5d597 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] 2195. [func] dnssec-keygen now defaults to nametype "ZONE" when generating DNSKEYs. [RT #16954] diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 4206209e7d0..e5739834346 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.c,v 1.347 2007/05/21 02:03:22 marka Exp $ */ +/* $Id: resolver.c,v 1.348 2007/06/18 02:34:21 marka Exp $ */ /*! \file */ @@ -823,6 +823,15 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) { fctx->type == dns_rdatatype_any || fctx->type == dns_rdatatype_rrsig || 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)); count++;