]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
tinydnsbackend: Ignore duplicate SOA records 9174/head
authorAki Tuomi <cmouse@cmouse.fi>
Fri, 29 May 2020 06:13:49 +0000 (09:13 +0300)
committerAki Tuomi <cmouse@cmouse.fi>
Mon, 9 Nov 2020 14:00:00 +0000 (16:00 +0200)
tinydns data format can generate multiple SOA records, so
ignore them to avoid listing same domain many times.

modules/tinydnsbackend/tinydnsbackend.cc

index 1de99d5e0232fef5b15401ab76efa1bd43bbd977..b4d015fc607b8c651739ed99786bcaee39cc906c 100644 (file)
@@ -163,9 +163,10 @@ void TinyDNSBackend::getAllDomains(vector<DomainInfo> *domains, bool include_dis
 
   d_cdbReader->searchAll();
   DNSResourceRecord rr;
+  std::unordered_set<DNSName> dupcheck;
 
   while (get(rr)) {
-    if (rr.qtype.getCode() == QType::SOA) {
+    if (rr.qtype.getCode() == QType::SOA && dupcheck.insert(rr.qname).second) {
       SOAData sd;
       fillSOAData(rr.content, sd);