diff --git a/CHANGES b/CHANGES index 304e6f59b6..db7e253db7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +2025. [func] Update "zone serial unchanged" message. [RT #16026] + +2024. [bug] named emited spurious "zone serial unchanged" + messages on reload. [RT #16027] + 2023. [bug] "make install" should create ${localstatedir}/run and ${sysconfdir} if they do not exist. [RT #16033] diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 647ab93bd0..0d72b17dfb 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: zone.c,v 1.410.18.43 2006/02/28 03:10:48 marka Exp $ */ +/* $Id: zone.c,v 1.410.18.44 2006/05/18 02:38:27 marka Exp $ */ /*! \file */ @@ -1138,7 +1138,7 @@ zone_load(dns_zone_t *zone, unsigned int flags) { result = isc_file_getmodtime(zone->masterfile, &filetime); if (result == ISC_R_SUCCESS) { if (!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_HASINCLUDE) && - isc_time_compare(&filetime, &zone->loadtime) < 0) { + isc_time_compare(&filetime, &zone->loadtime) <= 0) { dns_zone_log(zone, ISC_LOG_DEBUG(1), "skipping load: master file " "older than last load"); @@ -1151,6 +1151,16 @@ zone_load(dns_zone_t *zone, unsigned int flags) { INSIST(zone->db_argc >= 1); + /* + * Built in zones don't need to be reloaded. + */ + if (zone->type == dns_zone_master && + strcmp(zone->db_argv[0], "_builtin") == 0 && + DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADED)) { + result = ISC_R_SUCCESS; + goto cleanup; + } + if ((zone->type == dns_zone_slave || zone->type == dns_zone_stub) && (strcmp(zone->db_argv[0], "rbt") == 0 || strcmp(zone->db_argv[0], "rbt64") == 0)) { @@ -1954,7 +1964,9 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime, "zone serial has gone backwards"); else if (serial == zone->serial && !hasinclude) dns_zone_log(zone, ISC_LOG_ERROR, - "zone serial unchanged"); + "zone serial unchanged. " + "zone may fail to transfer " + "to slaves."); } zone->serial = serial; zone->refresh = RANGE(refresh,