From afd4063f20a078f0f8617d58e08d34a4bed55e53 Mon Sep 17 00:00:00 2001 From: Ralph Dolmans Date: Fri, 17 Aug 2018 12:48:47 +0000 Subject: [PATCH] - Fix classification for QTYPE=CNAME queries when QNAME minimisation is enabled. git-svn-id: file:///svn/unbound/trunk@4858 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 4 ++++ iterator/iterator.c | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 00b32be89..6234bc512 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +17 August 2018: Ralph + - Fix classification for QTYPE=CNAME queries when QNAME minimisation is + enabled. + 17 August 2018: Wouter - Set libunbound to increase current, because the libunbound change to the event callback function signature. That needs programs, diff --git a/iterator/iterator.c b/iterator/iterator.c index 7a55980a9..cb20c1e7c 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -2598,6 +2598,15 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq, /* DNAME to a subdomain loop; do not recurse */ type = RESPONSE_TYPE_ANSWER; } + } else if(type == RESPONSE_TYPE_CNAME && + iq->qchase.qtype == LDNS_RR_TYPE_CNAME && + iq->minimisation_state == MINIMISE_STATE && + query_dname_compare(iq->qchase.qname, iq->qinfo_out.qname) == 0) { + /* The minimised query for full QTYPE and hidden QTYPE can be + * classified as CNAME response type, even when the original + * QTYPE=CNAME. This should be treated as answer response type. + */ + type = RESPONSE_TYPE_ANSWER; } /* handle each of the type cases */ -- 2.47.3