* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: control.c,v 1.13 2002/06/13 05:12:51 marka Exp $ */
+/* $Id: control.c,v 1.14 2002/09/08 18:34:03 explorer Exp $ */
#include <config.h>
result = ns_server_freeze(ns_g_server, ISC_TRUE, command);
} else if (command_compare(command, NS_COMMAND_UNFREEZE)) {
result = ns_server_freeze(ns_g_server, ISC_FALSE, command);
+ } else if (command_compare(command, NS_COMMAND_TIMERPOKE)) {
+ result = ISC_R_SUCCESS;
+ isc_timermgr_poke(ns_g_timermgr);
} else {
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_CONTROL, ISC_LOG_WARNING,
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: control.h,v 1.10 2002/02/20 03:33:30 marka Exp $ */
+/* $Id: control.h,v 1.11 2002/09/08 18:34:04 explorer Exp $ */
#ifndef NAMED_CONTROL_H
#define NAMED_CONTROL_H 1
#define NS_COMMAND_STATUS "status"
#define NS_COMMAND_FREEZE "freeze"
#define NS_COMMAND_UNFREEZE "unfreeze"
+#define NS_COMMAND_TIMERPOKE "timerpoke"
isc_result_t
ns_controls_create(ns_server_t *server, ns_controls_t **ctrlsp);
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: server.c,v 1.383 2002/08/30 02:05:29 marka Exp $ */
+/* $Id: server.c,v 1.384 2002/09/08 18:34:03 explorer Exp $ */
#include <config.h>
}
}
+static void
+check_timer_tick(isc_task_t *task, isc_event_t *event) {
+ UNUSED(task);
+ isc_event_free(&event);
+
+ isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
+ NS_LOGMODULE_SERVER, ISC_LOG_INFO,
+ "************ I'm still alive! **************");
+}
+
/*
* Replace the current value of '*field', a dynamically allocated
* string or NULL, with a dynamically allocated copy of the
}
server->heartbeat_interval = heartbeat_interval;
+ /*
+ * Configure the dialup heartbeat timer.
+ */
+ {
+ isc_interval_t interval;
+ isc_interval_set(&interval, 15, 0);
+ CHECK(isc_timer_reset(server->check_timer,
+ isc_timertype_ticker,
+ NULL, &interval, ISC_FALSE));
+ }
+
/*
* Configure and freeze all explicit views. Explicit
* views that have zones were already created at parsing
server, &server->heartbeat_timer),
"creating heartbeat timer");
+ CHECKFATAL(isc_timer_create(ns_g_timermgr, isc_timertype_inactive,
+ NULL, NULL, server->task,
+ check_timer_tick,
+ server, &server->check_timer),
+ "creating check timer");
+
CHECKFATAL(cfg_parser_create(ns_g_mctx, NULL, &ns_g_parser),
"creating default configuration parser");
isc_timer_detach(&server->interface_timer);
isc_timer_detach(&server->heartbeat_timer);
+ isc_timer_detach(&server->check_timer);
ns_interfacemgr_shutdown(server->interfacemgr);
ns_interfacemgr_detach(&server->interfacemgr);
server->interface_timer = NULL;
server->heartbeat_timer = NULL;
+ server->check_timer = NULL;
server->interface_interval = 0;
server->heartbeat_interval = 0;