]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
pdnsutil: show DNSKEY and DS for ZSK-only zones
authorPieter Lexis <pieter.lexis@powerdns.com>
Mon, 28 Dec 2015 11:04:49 +0000 (12:04 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Mon, 18 Jan 2016 18:16:35 +0000 (19:16 +0100)
Closes #3068

pdns/pdnsutil.cc

index 02abec4a7ab96d92ee6e6fb2cf7930ee492d02a5..614f6cd0cd25235e70722f228981dbf466b5cd4f 100644 (file)
@@ -1140,6 +1140,11 @@ bool showZone(DNSSECKeeper& dk, const DNSName& zone)
   bool narrow;
   bool haveNSEC3=dk.getNSEC3PARAM(zone, &ns3pr, &narrow);
   
+  DNSSECKeeper::keyset_t entryPointKeys=dk.getEntryPoints(zone);
+  set<uint32_t> entryPointIds;
+  for (auto const& value : entryPointKeys)
+    entryPointIds.insert(value.second.id);
+
   DNSSECKeeper::keyset_t keyset=dk.getKeys(zone);
   if (B.getDomainMetadata(zone, "TSIG-ALLOW-AXFR", meta) && meta.size() > 0) {
      cerr << "Zone has following allowed TSIG key(s): " << boost::join(meta, ",") << endl;
@@ -1221,9 +1226,9 @@ bool showZone(DNSSECKeeper& dk, const DNSName& zone)
       }
       cout<<"ID = "<<value.second.id<<" ("<<(value.second.keyOrZone ? "KSK" : "ZSK")<<"), tag = "<<value.first.getDNSKEY().getTag();
       cout<<", algo = "<<(int)value.first.d_algorithm<<", bits = "<<value.first.getKey()->getBits()<<"\t"<<((int)value.second.active == 1 ? "  A" : "Ina")<<"ctive ( " + algname + " ) "<<endl;
-      if(value.second.keyOrZone || ::arg().mustDo("direct-dnskey") || 1)
+      if(entryPointIds.count(value.second.id) > 0 || ::arg().mustDo("direct-dnskey"))
         cout<<(value.second.keyOrZone ? "KSK" : "ZSK")<<" DNSKEY = "<<zone.toString()<<" IN DNSKEY "<< value.first.getDNSKEY().getZoneRepresentation() << " ; ( "  + algname + " )" << endl;
-      if(value.second.keyOrZone || 1) {
+      if(entryPointIds.count(value.second.id) > 0) {
         cout<<"DS = "<<zone.toString()<<" IN DS "<<makeDSFromDNSKey(zone, value.first.getDNSKEY(), 1).getZoneRepresentation() << " ; ( SHA1 digest )" << endl;
         cout<<"DS = "<<zone.toString()<<" IN DS "<<makeDSFromDNSKey(zone, value.first.getDNSKEY(), 2).getZoneRepresentation() << " ; ( SHA256 digest )" << endl;
         try {