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.
54 lines
1.5 KiB
54 lines
1.5 KiB
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 |
|
|
|
|