diff --git a/CHANGES b/CHANGES index ba23654b71..ba7d5752fc 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] --- 9.4.2b1 released --- diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 9a119cf238..1d582077d1 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.c,v 1.284.18.59 2007/03/06 00:50:11 marka Exp $ */ +/* $Id: resolver.c,v 1.284.18.60 2007/06/18 02:43:46 marka Exp $ */ /*! \file */ @@ -795,6 +795,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++;