From: Miod Vallat Date: Wed, 23 Apr 2025 12:01:48 +0000 (+0200) Subject: Review improvements. X-Git-Tag: dnsdist-2.0.0-alpha2~63^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ac7708d87f33e41b075423e517bf36cdaaf7bbfb;p=thirdparty%2Fpdns.git Review improvements. --- diff --git a/pdns/ueberbackend.cc b/pdns/ueberbackend.cc index 0ea0587980..c5b795ecb4 100644 --- a/pdns/ueberbackend.cc +++ b/pdns/ueberbackend.cc @@ -434,7 +434,7 @@ static std::vector>::iterator findBestMatchingBacken return backend; } -static bool foundTarget(const DNSName& target, const DNSName& shorter, const QType& qtype, [[maybe_unused]] SOAData* soaData, const bool found) +static bool foundTarget(const ZoneName& target, const ZoneName& shorter, const QType& qtype, [[maybe_unused]] SOAData* soaData, const bool found) { if (found == (qtype == QType::DS) || target != shorter) { DLOG(g_log << Logger::Error << "found: " << soaData->qname << endl); @@ -467,7 +467,7 @@ bool UeberBackend::getAuth(const ZoneName& target, const QType& qtype, SOAData* if (cachedOk && g_zoneCache.isEnabled()) { if (g_zoneCache.getEntry(shorter, zoneId)) { if (fillSOAFromZoneRecord(shorter, zoneId, soaData)) { - if (foundTarget(target.operator const DNSName&(), shorter.operator const DNSName&(), qtype, soaData, found)) { + if (foundTarget(target, shorter, qtype, soaData, found)) { return true; } @@ -489,7 +489,7 @@ bool UeberBackend::getAuth(const ZoneName& target, const QType& qtype, SOAData* if (cachedOk && (d_cache_ttl != 0 || d_negcache_ttl != 0)) { auto cacheResult = fillSOAFromCache(soaData, shorter); if (cacheResult == CacheResult::Hit) { - if (foundTarget(target.operator const DNSName&(), shorter.operator const DNSName&(), qtype, soaData, found)) { + if (foundTarget(target, shorter, qtype, soaData, found)) { return true; } @@ -535,7 +535,7 @@ bool UeberBackend::getAuth(const ZoneName& target, const QType& qtype, SOAData* } } - if (foundTarget(target.operator const DNSName&(), shorter.operator const DNSName&(), qtype, soaData, found)) { + if (foundTarget(target, shorter, qtype, soaData, found)) { return true; } diff --git a/pdns/ws-auth.cc b/pdns/ws-auth.cc index 6f7f21b5a1..a43323b408 100644 --- a/pdns/ws-auth.cc +++ b/pdns/ws-auth.cc @@ -2310,11 +2310,11 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf domainInfo.backend->getDomainMetadataOne(zonename, "SOA-EDIT", soa_edit_kind); bool soa_edit_done = false; - set> seen; + set> seen; for (const auto& rrset : rrsets.array_items()) { string changetype = toUpper(stringFromJson(rrset, "changetype")); - ZoneName qname = apiNameToZoneName(stringFromJson(rrset, "name")); + DNSName qname = apiNameToDNSName(stringFromJson(rrset, "name")); apiCheckQNameAllowedCharacters(qname.toString()); QType qtype; qtype = stringFromJson(rrset, "type"); @@ -2329,13 +2329,13 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf if (changetype == "DELETE") { // delete all matching qname/qtype RRs (and, implicitly comments). - if (!domainInfo.backend->replaceRRSet(domainInfo.id, qname.operator const DNSName&(), qtype, vector())) { + if (!domainInfo.backend->replaceRRSet(domainInfo.id, qname, qtype, vector())) { throw ApiException("Hosting backend does not support editing records."); } } else if (changetype == "REPLACE") { // we only validate for REPLACE, as DELETE can be used to "fix" out of zone records. - if (!qname.isPartOf(zonename) && qname != zonename) { + if (!qname.isPartOf(zonename) && qname != zonename.operator const DNSName&()) { throw ApiException("RRset " + qname.toString() + " IN " + qtype.toString() + ": Name is out of zone"); } @@ -2353,7 +2353,7 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf if (replace_records) { // ttl shouldn't be part of DELETE, and it shouldn't be required if we don't get new records. uint32_t ttl = uintFromJson(rrset, "ttl"); - gatherRecords(rrset, qname.operator const DNSName&(), qtype, ttl, new_records); + gatherRecords(rrset, qname, qtype, ttl, new_records); for (DNSResourceRecord& resourceRecord : new_records) { resourceRecord.domain_id = static_cast(domainInfo.id); @@ -2365,7 +2365,7 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf } if (replace_comments) { - gatherComments(rrset, qname.operator const DNSName&(), qtype, new_comments); + gatherComments(rrset, qname, qtype, new_comments); for (Comment& comment : new_comments) { comment.domain_id = static_cast(domainInfo.id); @@ -2381,7 +2381,7 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf bool dname_seen = false; bool ns_seen = false; - domainInfo.backend->APILookup(QType(QType::ANY), qname.operator const DNSName&(), static_cast(domainInfo.id), false); + domainInfo.backend->APILookup(QType(QType::ANY), qname, static_cast(domainInfo.id), false); DNSResourceRecord resourceRecord; while (domainInfo.backend->get(resourceRecord)) { if (resourceRecord.qtype.getCode() == QType::ENT) { @@ -2408,7 +2408,7 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf } } - if (dname_seen && ns_seen && qname != zonename) { + if (dname_seen && ns_seen && qname != zonename.operator const DNSName&()) { throw ApiException("RRset " + qname.toString() + " IN " + qtype.toString() + ": Cannot have both NS and DNAME except in zone apex"); } if (!new_records.empty() && domainInfo.kind == DomainInfo::Consumer) { @@ -2417,16 +2417,16 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf } if (!new_records.empty() && ent_present) { QType qt_ent{0}; - if (!domainInfo.backend->replaceRRSet(domainInfo.id, qname.operator const DNSName&(), qt_ent, new_records)) { + if (!domainInfo.backend->replaceRRSet(domainInfo.id, qname, qt_ent, new_records)) { throw ApiException("Hosting backend does not support editing records."); } } - if (!domainInfo.backend->replaceRRSet(domainInfo.id, qname.operator const DNSName&(), qtype, new_records)) { + if (!domainInfo.backend->replaceRRSet(domainInfo.id, qname, qtype, new_records)) { throw ApiException("Hosting backend does not support editing records."); } } if (replace_comments) { - if (!domainInfo.backend->replaceComments(domainInfo.id, qname.operator const DNSName&(), qtype, new_comments)) { + if (!domainInfo.backend->replaceComments(domainInfo.id, qname, qtype, new_comments)) { throw ApiException("Hosting backend does not support editing comments."); } }