b3942245cb
qname minimisation with a forwarder when connectivity has issues from rejecting responses. Resolves: rhbz#1633874
40 lines
1.6 KiB
Diff
40 lines
1.6 KiB
Diff
From 9be04e6fac3f4ee8fa08d3671dac41d2156d2ced Mon Sep 17 00:00:00 2001
|
|
From: Wouter Wijngaards <wouter@nlnetlabs.nl>
|
|
Date: Thu, 27 Sep 2018 08:19:29 +0000
|
|
Subject: [PATCH] - Fix #4188: IPv6 forwarders without ipv6 result in SERVFAIL,
|
|
fixes qname minimisation with a forwarder when connectivity has issues
|
|
from rejecting responses.
|
|
|
|
git-svn-id: file:///svn/unbound/trunk@4916 be551aaa-1e26-0410-a405-d3ace91eadb9
|
|
---
|
|
iterator/iterator.c | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/iterator/iterator.c b/iterator/iterator.c
|
|
index 7baf92b7..2f26bd33 100644
|
|
--- a/iterator/iterator.c
|
|
+++ b/iterator/iterator.c
|
|
@@ -2174,7 +2174,8 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
|
return 0;
|
|
}
|
|
|
|
- if(iq->minimisation_state == INIT_MINIMISE_STATE) {
|
|
+ if(iq->minimisation_state == INIT_MINIMISE_STATE
|
|
+ && !(iq->chase_flags & BIT_RD)) {
|
|
/* (Re)set qinfo_out to (new) delegation point, except when
|
|
* qinfo_out is already a subdomain of dp. This happens when
|
|
* increasing by more than one label at once (QNAMEs with more
|
|
@@ -2715,7 +2716,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
|
|
sock_list_insert(&qstate->reply_origin,
|
|
&qstate->reply->addr, qstate->reply->addrlen,
|
|
qstate->region);
|
|
- if(iq->minimisation_state != DONOT_MINIMISE_STATE) {
|
|
+ if(iq->minimisation_state != DONOT_MINIMISE_STATE
|
|
+ && !(iq->chase_flags & BIT_RD)) {
|
|
if(FLAGS_GET_RCODE(iq->response->rep->flags) !=
|
|
LDNS_RCODE_NOERROR) {
|
|
if(qstate->env->cfg->qname_minimisation_strict)
|
|
--
|
|
2.14.4
|
|
|