From: Bert Hubert Date: Fri, 3 Jun 2011 15:11:04 +0000 (+0000) Subject: make sure we adjust the SOA record even in ANY queries. Spotted by Marc Laros & other... X-Git-Tag: auth-3.0~43 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4e9fadf6a4710fd581d2ef9d394bf54a8dc3dcc6;p=pdns make sure we adjust the SOA record even in ANY queries. Spotted by Marc Laros & others. Closes ticket 357. git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@2206 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index 2d827aacd..1bcc288ba 100644 --- a/pdns/packethandler.cc +++ b/pdns/packethandler.cc @@ -704,7 +704,7 @@ bool PacketHandler::doDNSSECProcessing(DNSPacket *p, DNSPacket *r) return false; } - +#if 0 /* returns 1 if everything is done & ready, 0 if the search should continue, 2 if a 'NO-ERROR' response should be generated */ int PacketHandler::makeCanonic(DNSPacket *p, DNSPacket *r, string &target) { @@ -787,6 +787,8 @@ int PacketHandler::makeCanonic(DNSPacket *p, DNSPacket *r, string &target) return 0; } +#endif + /* Semantics: - only one backend owns the SOA of a zone @@ -1287,6 +1289,14 @@ DNSPacket *PacketHandler::questionOrRecurse(DNSPacket *p, bool *shouldRecurse) if(rr.qtype.getCode() == QType::CNAME && p->qtype.getCode() != QType::CNAME) weRedirected=1; + + if(rr.qtype.getCode() == QType::SOA && pdns_iequals(rr.qname, sd.qname)) { // fix up possible SOA adjustments for this zone + rr.content=serializeSOAData(sd); + rr.ttl=sd.ttl; + rr.domain_id=sd.domain_id; + rr.auth = true; + } + rrset.push_back(rr); }