]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
some hunks misapplied, fctx->addrinfo is needed
authorMark Andrews <marka@isc.org>
Wed, 12 Oct 2011 01:40:32 +0000 (01:40 +0000)
committerMark Andrews <marka@isc.org>
Wed, 12 Oct 2011 01:40:32 +0000 (01:40 +0000)
lib/dns/resolver.c

index f12f61b8723832a121d97236b56c1e77e69aa73f..82b2479df69ac601391ea131a7bfcbe77929ddcd 100644 (file)
@@ -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