From 580802e7292f8fc617fc5cc0c9b484fd16441a7d Mon Sep 17 00:00:00 2001 From: Kees Monshouwer Date: Fri, 7 Oct 2022 16:41:03 +0200 Subject: [PATCH] auth: pdnsutil check-zone, skip metadata check for backends without getAllDomainMetadata() --- pdns/pdnsutil.cc | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/pdns/pdnsutil.cc b/pdns/pdnsutil.cc index e709e1c932..557f621b82 100644 --- a/pdns/pdnsutil.cc +++ b/pdns/pdnsutil.cc @@ -834,22 +834,20 @@ static int checkZone(DNSSECKeeper &dk, UeberBackend &B, const DNSName& zone, con } std::map> metadatas; - if (!B.getAllDomainMetadata(zone, metadatas)) { - cout << "[Error] Unable to retrieve metadata for zone " << zone << endl; - numerrors++; - } - - for (const auto &metaData : metadatas) { - set seen; - set messaged; - - for (const auto &value : metaData.second) { - if (seen.count(value) == 0) { - seen.insert(value); - } else if (messaged.count(value) <= 0) { - cout << "[Error] Found duplicate metadata key value pair for zone " << zone << " with key '" << metaData.first << "' and value '" << value << "'" << endl; - numerrors++; - messaged.insert(value); + if (B.getAllDomainMetadata(zone, metadatas)) { + for (const auto& metaData : metadatas) { + set seen; + set messaged; + + for (const auto& value : metaData.second) { + if (seen.count(value) == 0) { + seen.insert(value); + } + else if (messaged.count(value) <= 0) { + cout << "[Error] Found duplicate metadata key value pair for zone " << zone << " with key '" << metaData.first << "' and value '" << value << "'" << endl; + numerrors++; + messaged.insert(value); + } } } } -- 2.47.2