From 9be04e6fac3f4ee8fa08d3671dac41d2156d2ced Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards 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