]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
get LUA record right for NSEC(3) bitmaps
authorbert hubert <bert.hubert@netherlabs.nl>
Fri, 15 Dec 2017 13:09:14 +0000 (14:09 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Fri, 15 Dec 2017 13:09:14 +0000 (14:09 +0100)
pdns/packethandler.cc

index ccc599143a9db07c7d586155c94c8016d6f4e2a4..c2be49a86a725c2e336102f3850aed1a58992958 100644 (file)
@@ -490,7 +490,9 @@ void PacketHandler::emitNSEC(DNSPacket *r, const SOAData& sd, const DNSName& nam
 
   B.lookup(QType(QType::ANY), name, NULL, sd.domain_id);
   while(B.get(rr)) {
-    if(rr.dr.d_type == QType::NS || rr.auth)
+    if(rr.dr.d_type == QType::LUA)
+      nrc.d_set.insert(getRR<LUARecordContent>(rr.dr)->d_type);
+    else if(rr.dr.d_type == QType::NS || rr.auth)
       nrc.d_set.insert(rr.dr.d_type);
   }
 
@@ -532,7 +534,9 @@ void PacketHandler::emitNSEC3(DNSPacket *r, const SOAData& sd, const NSEC3PARAMR
 
     B.lookup(QType(QType::ANY), name, NULL, sd.domain_id);
     while(B.get(rr)) {
-      if(rr.dr.d_type && (rr.dr.d_type == QType::NS || rr.auth)) // skip empty non-terminals
+      if(rr.dr.d_type == QType::LUA)
+        n3rc.d_set.insert(getRR<LUARecordContent>(rr.dr)->d_type);
+      else if(rr.dr.d_type && (rr.dr.d_type == QType::NS || rr.auth)) // skip empty non-terminals
         n3rc.d_set.insert(rr.dr.d_type);
     }
   }