// edit SOA (if needed)
if (!zone_disabled && !soa_edit_api_kind.empty() && !soa_edit_done) {
+ // 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<DNSResourceRecord>(1, resourceRecord))) {
}
}
- // return old and new serials in headers
- resp->headers["X-PDNS-Old-Serial"] = std::to_string(soaData.serial);
- fillSOAData(resourceRecord.content, soaData);
+ // return new serial in headers
resp->headers["X-PDNS-New-Serial"] = std::to_string(soaData.serial);
}
}
]
}
payload = {'rrsets': [rrset]}
- self.session.patch(
+ r = self.session.patch(
self.url("/api/v1/servers/localhost/zones/" + data['id']),
data=json.dumps(payload),
headers={'content-type': 'application/json'})
data = self.get_zone(data['id'])
soa_serial = get_first_rec(data, name, 'SOA')['content'].split(' ')[2]
self.assertEqual(soa_serial[-2:], '02')
+ self.assertEqual(r.headers['X-PDNS-Old-Serial'][-2:], '01')
+ self.assertEqual(r.headers['X-PDNS-New-Serial'][-2:], '02')
def test_create_zone_with_records(self):
name = unique_zone_name()