]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Also only add CDS and CDNSKEY to the type map in case we have published DNSKEY's 8925/head
authorRobin Geuze <robing@transip.nl>
Sat, 14 Mar 2020 11:24:35 +0000 (12:24 +0100)
committerRobin Geuze <robing@transip.nl>
Sat, 14 Mar 2020 11:24:35 +0000 (12:24 +0100)
pdns/packethandler.cc

index b37ca9d83cce59f1aaa5e8c2596659c7214c8b10..6defb6f1f210d909b5b9bcdc2dfdadb2d02e2e39 100644 (file)
@@ -509,15 +509,15 @@ void PacketHandler::emitNSEC(std::unique_ptr<DNSPacket>& r, const SOAData& sd, c
     auto keyset = d_dk.getKeys(name);
     if (!keyset.empty()) {
       nrc.set(QType::DNSKEY);
+      string publishCDNSKEY;
+      d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
+      if (publishCDNSKEY == "1")
+        nrc.set(QType::CDNSKEY);
+      string publishCDS;
+      d_dk.getPublishCDS(name, publishCDS);
+      if (! publishCDS.empty())
+        nrc.set(QType::CDS);
     }
-    string publishCDNSKEY;
-    d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
-    if (publishCDNSKEY == "1")
-      nrc.set(QType::CDNSKEY);
-    string publishCDS;
-    d_dk.getPublishCDS(name, publishCDS);
-    if (! publishCDS.empty())
-      nrc.set(QType::CDS);
   }
 
   DNSZoneRecord rr;
@@ -561,15 +561,15 @@ void PacketHandler::emitNSEC3(std::unique_ptr<DNSPacket>& r, const SOAData& sd,
       auto keyset = d_dk.getKeys(name);
       if (!keyset.empty()) {
         n3rc.set(QType::DNSKEY);
+        string publishCDNSKEY;
+        d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
+        if (publishCDNSKEY == "1")
+          n3rc.set(QType::CDNSKEY);
+        string publishCDS;
+        d_dk.getPublishCDS(name, publishCDS);
+        if (! publishCDS.empty())
+          n3rc.set(QType::CDS);
       }
-      string publishCDNSKEY;
-      d_dk.getPublishCDNSKEY(name, publishCDNSKEY);
-      if (publishCDNSKEY == "1")
-        n3rc.set(QType::CDNSKEY);
-      string publishCDS;
-      d_dk.getPublishCDS(name, publishCDS);
-      if (! publishCDS.empty())
-        n3rc.set(QType::CDS);
     }
 
     B.lookup(QType(QType::ANY), name, sd.domain_id);