From 7030a59b0b884bc0ee9aed67f34d44bb27ab8931 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Mon, 18 Sep 2017 15:01:39 +0200 Subject: [PATCH] rec: Handle direct NSEC queries --- pdns/syncres.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pdns/syncres.cc b/pdns/syncres.cc index f6a959e939..665c150eca 100644 --- a/pdns/syncres.cc +++ b/pdns/syncres.cc @@ -1935,10 +1935,6 @@ bool SyncRes::processRecords(const std::string& prefix, const DNSName& qname, co newtarget=content->getTarget(); } } - else if((rec.d_type==QType::RRSIG || rec.d_type==QType::NSEC || rec.d_type==QType::NSEC3) && rec.d_place==DNSResourceRecord::ANSWER) { - if(rec.d_type != QType::RRSIG || rec.d_name == qname) - ret.push_back(rec); // enjoy your DNSSEC - } else if(needWildcardProof && (rec.d_type==QType::RRSIG || rec.d_type==QType::NSEC || rec.d_type==QType::NSEC3) && rec.d_place==DNSResourceRecord::AUTHORITY) { ret.push_back(rec); // enjoy your DNSSEC } @@ -1954,6 +1950,10 @@ bool SyncRes::processRecords(const std::string& prefix, const DNSName& qname, co done=true; ret.push_back(rec); } + else if((rec.d_type==QType::RRSIG || rec.d_type==QType::NSEC || rec.d_type==QType::NSEC3) && rec.d_place==DNSResourceRecord::ANSWER) { + if(rec.d_type != QType::RRSIG || rec.d_name == qname) + ret.push_back(rec); // enjoy your DNSSEC + } else if(rec.d_place==DNSResourceRecord::AUTHORITY && rec.d_type==QType::NS && qname.isPartOf(rec.d_name)) { if(moreSpecificThan(rec.d_name,auth)) { newauth=rec.d_name; -- 2.47.2