]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
1644. [bug] Update the journal modification time after a
authorMark Andrews <marka@isc.org>
Fri, 4 Jun 2004 02:40:50 +0000 (02:40 +0000)
committerMark Andrews <marka@isc.org>
Fri, 4 Jun 2004 02:40:50 +0000 (02:40 +0000)
                        sucessfull refresh query. [RT #11436]

CHANGES
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index 4e9bac6183ad47fbf4bb5f8ec25e095f57de5bea..cdd2b0093cbbb767ed378a2e3adcb6d1e35ee03d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -12,7 +12,8 @@
 1645.  [bug]           named could trigger a REQUIRE failure if multiple
                        masters with keys are specified.
 
-1644.  [placeholder]   rt11436
+1644.  [bug]           Update the journal modification time after a
+                       sucessfull refresh query. [RT #11436]
 
 1643.  [bug]           dns_db_closeversion() could leak memory / node
                        references. [RT #11163]
index 7ae7e7713c7a8d17b04fa8352b31600ea35f3270..bb855c7e37453c593d5354eefad95218d4f85353 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.415 2004/05/28 23:53:46 marka Exp $ */
+/* $Id: zone.c,v 1.416 2004/06/04 02:40:50 marka Exp $ */
 
 #include <config.h>
 
@@ -3622,7 +3622,12 @@ refresh_callback(isc_task_t *task, isc_event_t *event) {
                        dns_message_destroy(&msg);
        } else if (isc_serial_eq(soa.serial, zone->serial)) {
                if (zone->masterfile != NULL) {
-                       result = isc_file_settime(zone->masterfile, &now);
+                       result = ISC_R_FAILURE;
+                       if (zone->journal != NULL)
+                               result = isc_file_settime(zone->journal, &now);
+                       if (result != ISC_R_SUCCESS)
+                               result = isc_file_settime(zone->masterfile,
+                                                         &now);
                        /* Someone removed the file from underneath us! */
                        if (result == ISC_R_FILENOTFOUND) {
                                LOCK_ZONE(zone);