- sd.serial = calculateIncreaseSOA(sd, increaseKind, editKind);
- rr.content = serializeSOAData(sd);
+
+ sd.serial = calculateIncreaseSOA(sd.serial, increaseKind, editKind, rr.qname);
+ rr.content = makeSOAContent(sd)->getZoneRepresentation(true);
+ return true;
+}
+
+/** Used for SOA-EDIT-DNSUPDATE and SOA-EDIT-API.
+ * Makes a mostly reset DNSResourceRecord for you in @param rrout.
+ * Content in rrout is suitable for writing into a backend.
+ *
+ * @return true if rrout is now valid
+ */
+bool makeIncreasedSOARecord(SOAData& sd, const string& increaseKind, const string& editKind, DNSResourceRecord& rrout) {
+ if (increaseKind.empty())
+ return false;
+
+ sd.serial = calculateIncreaseSOA(sd.serial, increaseKind, editKind, sd.qname);
+ rrout.qname = sd.qname;
+ rrout.content = makeSOAContent(sd)->getZoneRepresentation(true);
+ rrout.qtype = QType::SOA;
+ rrout.domain_id = sd.domain_id;
+ rrout.auth = 1;
+ rrout.ttl = sd.ttl;
+