From: Aki Tuomi Date: Fri, 29 May 2020 06:13:49 +0000 (+0300) Subject: tinydnsbackend: Ignore duplicate SOA records X-Git-Tag: dnsdist-1.6.0-alpha0~24^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a6fd530e055a1dd579dc6ca95c274651105dc3a;p=thirdparty%2Fpdns.git tinydnsbackend: Ignore duplicate SOA records tinydns data format can generate multiple SOA records, so ignore them to avoid listing same domain many times. --- diff --git a/modules/tinydnsbackend/tinydnsbackend.cc b/modules/tinydnsbackend/tinydnsbackend.cc index 1de99d5e02..b4d015fc60 100644 --- a/modules/tinydnsbackend/tinydnsbackend.cc +++ b/modules/tinydnsbackend/tinydnsbackend.cc @@ -163,9 +163,10 @@ void TinyDNSBackend::getAllDomains(vector *domains, bool include_dis d_cdbReader->searchAll(); DNSResourceRecord rr; + std::unordered_set 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);