From: Miod Vallat Date: Fri, 13 Jun 2025 08:39:11 +0000 (+0200) Subject: Factor code responsible for serial increase. NFCI X-Git-Tag: dnsdist-2.1.0-alpha0^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b3ecab1142b716d87a3caad910703c3c030ae20;p=thirdparty%2Fpdns.git Factor code responsible for serial increase. NFCI --- diff --git a/pdns/ws-auth.cc b/pdns/ws-auth.cc index f1d0bf9063..9cbe0d5d7b 100644 --- a/pdns/ws-auth.cc +++ b/pdns/ws-auth.cc @@ -774,6 +774,18 @@ static void extractJsonTSIGKeyIds(UeberBackend& backend, const Json& jsonArray, } } +// Wrapper around makeIncreasedSOARecord() +static void updateZoneSerial(DomainInfo& domainInfo, SOAData& soaData, const std::string& increaseKind, const std::string& editKind) +{ + DNSResourceRecord resourceRecord; + + if (makeIncreasedSOARecord(soaData, increaseKind, editKind, resourceRecord)) { + if (!domainInfo.backend->replaceRRSet(domainInfo.id, resourceRecord.qname, resourceRecord.qtype, vector(1, resourceRecord))) { + throw ApiException("Hosting backend does not support editing records."); + } + } +} + // Must be called within backend transaction. static void updateDomainSettingsFromDocument(UeberBackend& backend, DomainInfo& domainInfo, const ZoneName& zonename, const Json& document, bool zoneWasModified) { @@ -917,12 +929,7 @@ static void updateDomainSettingsFromDocument(UeberBackend& backend, DomainInfo& string soa_edit_kind; domainInfo.backend->getDomainMetadataOne(zonename, "SOA-EDIT", soa_edit_kind); - DNSResourceRecord resourceRecord; - if (makeIncreasedSOARecord(soaData, soa_edit_api_kind, soa_edit_kind, resourceRecord)) { - if (!domainInfo.backend->replaceRRSet(domainInfo.id, resourceRecord.qname, resourceRecord.qtype, vector(1, resourceRecord))) { - throw ApiException("Hosting backend does not support editing records."); - } - } + updateZoneSerial(domainInfo, soaData, soa_edit_api_kind, soa_edit_kind); } } @@ -2444,12 +2451,7 @@ static void patchZone(UeberBackend& backend, const ZoneName& zonename, DomainInf // return old serial in headers, before changing it resp->headers["X-PDNS-Old-Serial"] = std::to_string(soaData.serial); - DNSResourceRecord resourceRecord; - if (makeIncreasedSOARecord(soaData, soa_edit_api_kind, soa_edit_kind, resourceRecord)) { - if (!domainInfo.backend->replaceRRSet(domainInfo.id, resourceRecord.qname, resourceRecord.qtype, vector(1, resourceRecord))) { - throw ApiException("Hosting backend does not support editing records."); - } - } + updateZoneSerial(domainInfo, soaData, soa_edit_api_kind, soa_edit_kind); // return new serial in headers resp->headers["X-PDNS-New-Serial"] = std::to_string(soaData.serial);