]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth-api: backport, there is no makeIncreasedSOARecord() in 4.1.x 6572/head
authorKees Monshouwer <mind04@monshouwer.org>
Fri, 4 May 2018 21:24:18 +0000 (23:24 +0200)
committermind04 <mind04@monshouwer.org>
Fri, 4 May 2018 21:46:04 +0000 (23:46 +0200)
pdns/ws-auth.cc

index b20c489f54f88cd42e627f0bc0deafcc8e3c5794..aa4cdab0ec2f6e7111c634ae0e8bdc65f5624149 100644 (file)
@@ -672,14 +672,22 @@ static void updateDomainSettingsFromDocument(UeberBackend& B, const DomainInfo&
     di.backend->getDomainMetadataOne(zonename, "SOA-EDIT-API", soa_edit_api_kind);
     if (!soa_edit_api_kind.empty()) {
       SOAData sd;
-      if (!B.getSOAUncached(zonename, sd, true))
+      if (!B.getSOAUncached(zonename, sd))
         return;
 
       string soa_edit_kind;
       di.backend->getDomainMetadataOne(zonename, "SOA-EDIT", soa_edit_kind);
 
       DNSResourceRecord rr;
-      if (makeIncreasedSOARecord(sd, soa_edit_api_kind, soa_edit_kind, rr)) {
+      rr.qname = sd.qname;
+      rr.content = serializeSOAData(sd);
+      rr.qtype = "SOA";
+      rr.domain_id = sd.domain_id;
+      rr.auth = 1;
+      rr.ttl = sd.ttl;
+      if (increaseSOARecord(rr, soa_edit_api_kind, soa_edit_kind)) {
+        // fixup dots after serializeSOAData/increaseSOARecord
+        rr.content = makeBackendRecordContent(rr.qtype, rr.content);
         if (!di.backend->replaceRRSet(di.id, rr.qname, rr.qtype, vector<DNSResourceRecord>(1, rr))) {
           throw ApiException("Hosting backend does not support editing records.");
         }