]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
714. [bug] Preserve interval timers across reloads unless changed.
authorMark Andrews <marka@isc.org>
Mon, 29 Jan 2001 07:08:41 +0000 (07:08 +0000)
committerMark Andrews <marka@isc.org>
Mon, 29 Jan 2001 07:08:41 +0000 (07:08 +0000)
                        [RT# 729]

CHANGES
bin/named/include/named/server.h
bin/named/server.c

diff --git a/CHANGES b/CHANGES
index a7bf5c65f75dd5bf2e3004b7550a2a56d684ad8b..396db49065215fbb5b8c4eb6342047a824cfcfcb 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+ 714.  [bug]           Preserve interval timers across reloads unless changed.
+                       [RT# 729]
+
  713.  [func]          named-checkconf takes '-t directory' similar to named.
                        [RT #726]
 
index 001f1e3a2996c7001d76647ad7ba9289fd209afb..72cff16d6fd62c832262b1a2e2c0593e8df57a3c 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: server.h,v 1.49 2001/01/09 21:40:28 bwelling Exp $ */
+/* $Id: server.h,v 1.50 2001/01/29 07:08:41 marka Exp $ */
 
 #ifndef NAMED_SERVER_H
 #define NAMED_SERVER_H 1
@@ -60,8 +60,11 @@ struct ns_server {
        ns_interfacemgr_t *     interfacemgr;
        dns_db_t *              in_roothints;
        dns_tkeyctx_t *         tkeyctx;
+
        isc_timer_t *           interface_timer;
        isc_timer_t *           heartbeat_timer;
+       isc_uint32_t            interface_interval;
+       isc_uint32_t            heartbeat_interval;
 
        isc_mutex_t             reload_event_lock;
        isc_event_t *           reload_event;
index 16ba016bcc092fd5d599f3fa1a892d6fb338f9be..b02bfbf8115346eae1c65d2c8f51190a929c6afc 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: server.c,v 1.285 2001/01/25 02:33:40 bwelling Exp $ */
+/* $Id: server.c,v 1.286 2001/01/29 07:08:40 marka Exp $ */
 
 #include <config.h>
 
@@ -1594,12 +1594,13 @@ load_configuration(const char *filename, ns_server_t *server,
                isc_timer_reset(server->interface_timer,
                                isc_timertype_inactive,
                                NULL, NULL, ISC_TRUE);
-       } else {
+       } else if (server->interface_interval != interface_interval) {
                isc_interval_t interval;
                isc_interval_set(&interval, interface_interval, 0);
                isc_timer_reset(server->interface_timer, isc_timertype_ticker,
                                NULL, &interval, ISC_FALSE);
        }
+       server->interface_interval = interface_interval;
 
        /*
         * Configure the dialup heartbeat timer.
@@ -1611,12 +1612,13 @@ load_configuration(const char *filename, ns_server_t *server,
                isc_timer_reset(server->heartbeat_timer,
                                isc_timertype_inactive,
                                NULL, NULL, ISC_TRUE);
-       } else {
+       } else if (server->heartbeat_interval != heartbeat_interval) {
                isc_interval_t interval;
                isc_interval_set(&interval, heartbeat_interval, 0);
                isc_timer_reset(server->heartbeat_timer, isc_timertype_ticker,
                                NULL, &interval, ISC_FALSE);
        }
+       server->heartbeat_interval = heartbeat_interval;
 
        /*
         * Configure and freeze all explicit views.  Explicit
@@ -2069,6 +2071,9 @@ ns_server_create(isc_mem_t *mctx, ns_server_t **serverp) {
 
        server->interface_timer = NULL;
        server->heartbeat_timer = NULL;
+       
+       server->interface_interval = 0;
+       server->hearbeat_interval = 0;
 
        CHECKFATAL(dns_zonemgr_create(ns_g_mctx, ns_g_taskmgr, ns_g_timermgr,
                                      ns_g_socketmgr, &server->zonemgr),