Commit 1a3d6530 authored by Andreas Gustafsson's avatar Andreas Gustafsson
Browse files

deleting the last NS should always succeed when not at the zone apex

parent 6eccd75f
......@@ -2188,22 +2188,31 @@ update_action(isc_task_t *task, isc_event_t *event)
&diff));
}
} else if (update_class == dns_rdataclass_none) {
/*
* The (name == zonename) condition appears in
* RFC2136 3.4.2.4 but is missing from the pseudocode.
*/
if (dns_name_equal(name, zonename)) {
if (rdata.type == dns_rdatatype_soa) {
isc_log_write(UPDATE_PROTOCOL_LOGARGS,
"attempt to delete SOA ignored");
"attempt to delete SOA "
"ignored");
continue;
}
if (rdata.type == dns_rdatatype_ns) {
int count;
CHECK(rr_count(db, ver, name,
dns_rdatatype_ns, 0, &count));
dns_rdatatype_ns,
0, &count));
if (count == 1) {
isc_log_write(UPDATE_PROTOCOL_LOGARGS,
isc_log_write(
UPDATE_PROTOCOL_LOGARGS,
"attempt to delete last "
"NS ignored");
continue;
}
}
}
isc_log_write(UPDATE_PROTOCOL_LOGARGS,
"deleting an RR");
CHECK(delete_if(rr_equal_p, db, ver, name,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment