bool DNSBackend::getSOA(const string &domain, SOAData &sd, DNSPacket *p)
{
this->lookup(QType(QType::SOA),domain,p);
-
+
DNSResourceRecord rr;
rr.auth = true;
if(!hits)
return false;
-
+ sd.qname = domain;
if(sd.nameserver.empty())
sd.nameserver=arg()["default-soa-name"];
s_P=new PacketHandler;
}
- if(!s_P->getBackend()->getSOA(target,sd)) {
+ if(!s_P->getBackend()->getSOA(target, sd)) {
L<<Logger::Error<<"AXFR of domain '"<<target<<"' failed: not authoritative"<<endl;
outpacket->setRcode(9); // 'NOTAUTH'
sendPacket(outpacket,outsock);
// sendPacket(outpacket, outsock);
typedef map<string, NSECEntry, CanonicalCompare> nsecrepo_t;
nsecrepo_t nsecrepo;
- // this is where the DNSKEYs go
-
+ // this is where the DNSKEYs go
DNSSECKeeper::keyset_t keys = dk.getKeys(target);
BOOST_FOREACH(const DNSSECKeeper::keyset_t::value_type& value, keys) {
ne.d_ttl = rr.ttl;
outpacket->addRecord(rr);
}
-
/* now write all other records */
int count=0;
// FIXME: Subsequent messages SHOULD NOT have a question section, though the final message MAY.
}
}
-
- if(dk.haveActiveKSKFor(sd.qname)) {
+
+ if(dk.haveActiveKSKFor(target)) {
for(nsecrepo_t::const_iterator iter = nsecrepo.begin(); iter != nsecrepo.end(); ++iter) {
- cerr<<"Adding for '"<<iter->first<<"'\n";
+ // cerr<<"Adding for '"<<iter->first<<"'\n";
NSECRecordContent nrc;
nrc.d_set = iter->second.d_set;
nrc.d_set.insert(QType::RRSIG);
rr.content = nrc.getZoneRepresentation();
rr.qtype = QType::NSEC;
rr.d_place = DNSResourceRecord::ANSWER;
+ rr.auth=true;
outpacket->addRecord(rr);
count++;
}