]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix #4188: IPv6 forwarders without ipv6 result in SERVFAIL, fixes
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 27 Sep 2018 08:19:29 +0000 (08:19 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 27 Sep 2018 08:19:29 +0000 (08:19 +0000)
  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

doc/Changelog
iterator/iterator.c

index 717cd33849898a23c56451bcb35db2cd0caa874d..b4a16f38b007eb8164afee83ff82e41997247e6d 100644 (file)
@@ -1,3 +1,8 @@
+27 September 2018: Wouter
+       - Fix #4188: IPv6 forwarders without ipv6 result in SERVFAIL, fixes
+         qname minimisation with a forwarder when connectivity has issues
+         from rejecting responses.
+
 25 September 2018: Wouter
        - Perform TLS SNI indication of the host that is being contacted
          for DNS over TLS service.  It sets the configured tls auth name.
index 7baf92b759e1dbd391b2283048a446d6f1dd49e4..2f26bd3349de999f172d76326e355edfb6c6f577 100644 (file)
@@ -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)