]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2024. [bug] named emited spurious "zone serial unchanged"
authorMark Andrews <marka@isc.org>
Thu, 18 May 2006 02:30:20 +0000 (02:30 +0000)
committerMark Andrews <marka@isc.org>
Thu, 18 May 2006 02:30:20 +0000 (02:30 +0000)
                        messages on reload. [RT #16027]

CHANGES
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index 2e481c609da7a29eef1731f5a8cc404dbd191191..813e552ccebacab7e4e4ee51daf75e08a5de1c11 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+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]
 
index ce09bbcbcac17715099980237b0768aed24e67e4..cee46e1525acc43a393da59d8bcfd682fb00ab93 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.333.2.43 2006/03/01 01:34:05 marka Exp $ */
+/* $Id: zone.c,v 1.333.2.44 2006/05/18 02:30:20 marka Exp $ */
 
 #include <config.h>
 
@@ -945,7 +945,7 @@ zone_load(dns_zone_t *zone, unsigned int flags) {
                        result = isc_file_getmodtime(zone->masterfile,
                                                     &filetime);
                        if (result == ISC_R_SUCCESS &&
-                           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");
@@ -957,6 +957,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)) {