From df4074735e5e4425fd14979221bc04c4cbcc752c Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 12 Oct 2011 01:40:32 +0000 Subject: [PATCH] some hunks misapplied, fctx->addrinfo is needed --- lib/dns/resolver.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index f12f61b872..82b2479df6 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.c,v 1.384.14.33 2011/10/12 00:30:16 marka Exp $ */ +/* $Id: resolver.c,v 1.384.14.34 2011/10/12 01:40:32 marka Exp $ */ /*! \file */ @@ -273,6 +273,7 @@ struct fetchctx { unsigned int findfail; unsigned int valfail; isc_boolean_t timeout; + dns_adbaddrinfo_t *addrinfo; }; #define FCTX_MAGIC ISC_MAGIC('F', '!', '!', '!') @@ -3568,6 +3569,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, fctx->rand_buf = 0; fctx->rand_bits = 0; fctx->timeout = ISC_FALSE; + fctx->addrinfo = NULL; dns_name_init(&fctx->nsname, NULL); fctx->nsfetch = NULL; @@ -5242,6 +5244,9 @@ noanswer_response(fetchctx_t *fctx, dns_name_t *oqname, if (aa) rdataset->trust = dns_trust_authauthority; + else if (ISFORWARDER(fctx->addrinfo)) + rdataset->trust = + dns_trust_answer; else rdataset->trust = dns_trust_additional; @@ -5295,6 +5300,9 @@ noanswer_response(fetchctx_t *fctx, dns_name_t *oqname, if (aa) rdataset->trust = dns_trust_authauthority; + else if (ISFORWARDER(fctx->addrinfo)) + rdataset->trust = + dns_trust_answer; else rdataset->trust = dns_trust_additional; @@ -5329,12 +5337,6 @@ noanswer_response(fetchctx_t *fctx, dns_name_t *oqname, else if (ISFORWARDER(fctx->addrinfo)) rdataset->trust = dns_trust_answer; - else if (ISFORWARDER(fctx->addrinfo)) - rdataset->trust = - dns_trust_answer; - else if (ISFORWARDER(fctx->addrinfo)) - rdataset->trust = - dns_trust_answer; else rdataset->trust = dns_trust_additional; @@ -6195,6 +6197,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { fctx->timeouts = 0; fctx->timeout = ISC_FALSE; + fctx->addrinfo = query->addrinfo; /* * XXXRTH We should really get the current time just once. We