Unload a zone if a transfer breaks its SOA record

If a zone transfer results in a zone not having any NS records, named
stops serving it because such a zone is broken.  Do the same if an
incoming zone transfer results in a zone lacking an SOA record at the
apex or containing more than one SOA record.
This commit is contained in:
Mark Andrews
2021-04-29 10:30:00 +02:00
committed by Michał Kępień
parent 2ca0bd882d
commit 5318627227
+10 -3
View File
@@ -17156,9 +17156,16 @@ again:
if (soacount != 1) {
dns_zone_log(zone, ISC_LOG_ERROR,
"transferred zone "
"has %d SOA record%s",
soacount,
(soacount != 0) ? "s" : "");
"has %d SOA records",
soacount);
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_HAVETIMERS))
{
zone->refresh = DNS_ZONE_DEFAULTREFRESH;
zone->retry = DNS_ZONE_DEFAULTRETRY;
}
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_HAVETIMERS);
zone_unload(zone);
goto next_master;
}
if (nscount == 0) {
dns_zone_log(zone, ISC_LOG_ERROR,