Skip to content

Commit 09bdd9f

Browse files
committed
don't send covering nsec records for direct nsec queries
1 parent 0d7042b commit 09bdd9f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

pdns/packethandler.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,8 @@ void PacketHandler::addNSEC(DNSPacket *p, DNSPacket *r, const string& target, co
645645
rr.auth=false;
646646
if(!B.getDirectNSECx(sd.domain_id, toLower(labelReverse(makeRelative(target, auth))), QType(QType::NSEC), before, rr)) {
647647
sd.db->getBeforeAndAfterNames(sd.domain_id, auth, target, before, after);
648-
emitNSEC(before, after, target, sd, r, mode);
648+
if (mode != 5 || pdns_iequals(before, target))
649+
emitNSEC(before, after, target, sd, r, mode);
649650
} else if(rr.auth) {
650651
if (mode == 5)
651652
rr.d_place=DNSResourceRecord::ANSWER;
@@ -1176,7 +1177,8 @@ DNSPacket *PacketHandler::questionOrRecurse(DNSPacket *p, bool *shouldRecurse)
11761177
// this TRUMPS a cname!
11771178
if(p->qtype.getCode() == QType::NSEC && d_dk.isSecuredZone(sd.qname) && !d_dk.getNSEC3PARAM(sd.qname, 0)) {
11781179
addNSEC(p, r, target, "", sd.qname, 5);
1179-
goto sendit;
1180+
if (!r->isEmpty())
1181+
goto sendit;
11801182
}
11811183

11821184
// this TRUMPS a cname!

0 commit comments

Comments
 (0)