nrc.set(QType::RRSIG);
if(sd.qname == name) {
nrc.set(QType::SOA); // 1dfd8ad SOA can live outside the records table
- auto keyset = d_dk.getKeys(name);
- for(const auto& value: keyset) {
- if (value.second.published) {
- nrc.set(QType::DNSKEY);
- string publishCDNSKEY;
- d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
- if (! publishCDNSKEY.empty())
- nrc.set(QType::CDNSKEY);
- string publishCDS;
- d_dk.getPublishCDS(name, publishCDS);
- if (! publishCDS.empty())
- nrc.set(QType::CDS);
- break;
+ if(!d_dk.isPresigned(sd.qname)) {
+ auto keyset = d_dk.getKeys(name);
+ for(const auto& value: keyset) {
+ if (value.second.published) {
+ nrc.set(QType::DNSKEY);
+ string publishCDNSKEY;
+ d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
+ if (! publishCDNSKEY.empty())
+ nrc.set(QType::CDNSKEY);
+ string publishCDS;
+ d_dk.getPublishCDS(name, publishCDS);
+ if (! publishCDS.empty())
+ nrc.set(QType::CDS);
+ break;
+ }
}
}
}
if (sd.qname == name) {
n3rc.set(QType::SOA); // 1dfd8ad SOA can live outside the records table
n3rc.set(QType::NSEC3PARAM);
- auto keyset = d_dk.getKeys(name);
- for(const auto& value: keyset) {
- if (value.second.published) {
- n3rc.set(QType::DNSKEY);
- string publishCDNSKEY;
- d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
- if (! publishCDNSKEY.empty())
- n3rc.set(QType::CDNSKEY);
- string publishCDS;
- d_dk.getPublishCDS(name, publishCDS);
- if (! publishCDS.empty())
- n3rc.set(QType::CDS);
- break;
+ if(!d_dk.isPresigned(sd.qname)) {
+ auto keyset = d_dk.getKeys(name);
+ for(const auto& value: keyset) {
+ if (value.second.published) {
+ n3rc.set(QType::DNSKEY);
+ string publishCDNSKEY;
+ d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
+ if (! publishCDNSKEY.empty())
+ n3rc.set(QType::CDNSKEY);
+ string publishCDS;
+ d_dk.getPublishCDS(name, publishCDS);
+ if (! publishCDS.empty())
+ n3rc.set(QType::CDS);
+ break;
+ }
}
}
}