]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
API: add Zone TSIG key info (GET)
authorPieter Lexis <pieter.lexis@powerdns.com>
Wed, 22 Nov 2017 11:22:04 +0000 (12:22 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Fri, 25 May 2018 11:22:48 +0000 (13:22 +0200)
pdns/ws-auth.cc

index e3beb3067bf509e3ba625a9b83ec2393e494c1dc..2a1fa2a1cef17cbed8961aab2dcde22041feb395 100644 (file)
@@ -361,6 +361,23 @@ static void fillZone(const DNSName& zonename, HttpResponse* resp, bool doRRSets)
   di.backend->getDomainMetadataOne(zonename, "API-RECTIFY", api_rectify);
   doc["api_rectify"] = (api_rectify == "1");
 
+  // TSIG
+  vector<string> tsig_master, tsig_slave;
+  di.backend->getDomainMetadata(zonename, "TSIG-ALLOW-AXFR", tsig_master);
+  di.backend->getDomainMetadata(zonename, "AXFR-MASTER-TSIG", tsig_slave);
+
+  Json::array tsig_master_keys;
+  for (const auto& keyname : tsig_master) {
+    tsig_master_keys.push_back(apiZoneNameToId(DNSName(keyname)));
+  }
+  doc["master_tsig_key_ids"] = tsig_master_keys;
+
+  Json::array tsig_slave_keys;
+  for (const auto& keyname : tsig_slave) {
+    tsig_slave_keys.push_back(apiZoneNameToId(DNSName(keyname)));
+  }
+  doc["slave_tsig_key_ids"] = tsig_slave_keys;
+
   if (doRRSets) {
     vector<DNSResourceRecord> records;
     vector<Comment> comments;