You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
55 lines
1.5 KiB
6 years ago
|
From 9f9ce5d91a944407e13360e9c92c090d23777a8b Mon Sep 17 00:00:00 2001
|
||
|
From: Mark Andrews <marka@isc.org>
|
||
|
Date: Fri, 27 May 2016 18:39:33 +1000
|
||
|
Subject: [PATCH] fix merge error
|
||
|
|
||
|
---
|
||
|
bin/named/query.c | 31 +++++++++++++++++++++++++++++++
|
||
|
1 file changed, 31 insertions(+)
|
||
|
|
||
|
diff --git a/bin/named/query.c b/bin/named/query.c
|
||
|
index 6e988f5686..2c44e9ff53 100644
|
||
|
--- a/bin/named/query.c
|
||
|
+++ b/bin/named/query.c
|
||
|
@@ -7195,6 +7195,37 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||
|
* we know the answer.
|
||
|
*/
|
||
|
|
||
|
+ /*
|
||
|
+ * If we have a zero ttl from the cache refetch it.
|
||
|
+ */
|
||
|
+ if (!is_zone && event == NULL && rdataset->ttl == 0 &&
|
||
|
+ RECURSIONOK(client))
|
||
|
+ {
|
||
|
+ if (dns_rdataset_isassociated(rdataset))
|
||
|
+ dns_rdataset_disassociate(rdataset);
|
||
|
+ if (sigrdataset != NULL &&
|
||
|
+ dns_rdataset_isassociated(sigrdataset))
|
||
|
+ dns_rdataset_disassociate(sigrdataset);
|
||
|
+ if (node != NULL)
|
||
|
+ dns_db_detachnode(db, &node);
|
||
|
+
|
||
|
+ result = query_recurse(client, qtype,
|
||
|
+ client->query.qname,
|
||
|
+ NULL, NULL, resuming);
|
||
|
+ if (result == ISC_R_SUCCESS) {
|
||
|
+ client->query.attributes |=
|
||
|
+ NS_QUERYATTR_RECURSING;
|
||
|
+ if (dns64)
|
||
|
+ client->query.attributes |=
|
||
|
+ NS_QUERYATTR_DNS64;
|
||
|
+ if (dns64_exclude)
|
||
|
+ client->query.attributes |=
|
||
|
+ NS_QUERYATTR_DNS64EXCLUDE;
|
||
|
+ } else
|
||
|
+ RECURSE_ERROR(result);
|
||
|
+ goto cleanup;
|
||
|
+ }
|
||
|
+
|
||
|
#ifdef ALLOW_FILTER_AAAA_ON_V4
|
||
|
/*
|
||
|
* Optionally hide AAAAs from IPv4 clients if there is an A.
|
||
|
--
|
||
|
2.14.4
|
||
|
|