From: Peter van Dijk Date: Thu, 25 Apr 2013 09:21:07 +0000 (+0000) Subject: make sure mixed-case queries get a correct apex NSEC3 type bitmap X-Git-Tag: auth-3.3-rc1~165 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ff64750bc3a648c02686eb41c97a14b43b8ac863;p=pdns make sure mixed-case queries get a correct apex NSEC3 type bitmap git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@3176 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index 462f6893d..1fabbf49a 100644 --- a/pdns/packethandler.cc +++ b/pdns/packethandler.cc @@ -461,7 +461,7 @@ void emitNSEC3(DNSBackend& B, const NSEC3PARAMRecordContent& ns3prc, const SOADa n3rc.d_set.insert(rr.qtype.getCode()); } - if(unhashed == sd.qname) { + if(toLower(unhashed) == toLower(sd.qname)) { n3rc.d_set.insert(QType::NSEC3PARAM); n3rc.d_set.insert(QType::DNSKEY); } diff --git a/regression-tests/uppercase-nsec/description b/regression-tests/uppercase-nsec/description index 3c0fcd94f..49190f9cf 100644 --- a/regression-tests/uppercase-nsec/description +++ b/regression-tests/uppercase-nsec/description @@ -1,2 +1,4 @@ Make sure we lowercase the next name in an NSEC because validators do not (RFC6840 5.1). +Also, make sure our NSEC3 apex bitmap includes DNSKEY and NSEC3PARAM +if the zone name part of the query includes uppercase. diff --git a/regression-tests/uppercase-nsec/expected_result.nsec3 b/regression-tests/uppercase-nsec/expected_result.nsec3 index eeead1cbd..70c5e021e 100644 --- a/regression-tests/uppercase-nsec/expected_result.nsec3 +++ b/regression-tests/uppercase-nsec/expected_result.nsec3 @@ -1,4 +1,4 @@ -1 2eu2gulbu53h9uvhfalshpbo2a83t6l2.Test.com. IN NSEC3 86400 1 1 1 abcd 2GKS2N3JPQF62QOHAVFQ1PHOLM3HR7RA NS SOA MX RRSIG +1 2eu2gulbu53h9uvhfalshpbo2a83t6l2.Test.com. IN NSEC3 86400 1 1 1 abcd 2GKS2N3JPQF62QOHAVFQ1PHOLM3HR7RA NS SOA MX RRSIG DNSKEY NSEC3PARAM 1 2eu2gulbu53h9uvhfalshpbo2a83t6l2.Test.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] test.com. ... 1 Test.com. IN RRSIG 3600 SOA 8 2 3600 [expiry] [inception] [keytag] test.com. ... 1 Test.com. IN SOA 3600 ns1.Test.com. ahu.example.com. 2005092501 28800 7200 604800 86400