]> 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:03:37 +0000 (02:03 +0000)
committerMark Andrews <marka@isc.org>
Thu, 18 May 2006 02:03:37 +0000 (02:03 +0000)
                        messages on reload. [RT #16027]

CHANGES
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index 938acd50c25e16ef23f8b6315df39c8a835a6d39..f4a25f01fd4a52cab92579034a88365df7a7dade 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 4a9e53294ead8d58557e4ce5d7317af9375b8096..e6d0082eb8125ad01d1186b74be3be47896e2f6b 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.453 2006/02/28 02:39:51 marka Exp $ */
+/* $Id: zone.c,v 1.454 2006/05/18 02:03:37 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)) {