mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
add 15-second 'alive' messages (sent to server info channel) and support for a temporary hack, 'rndc timerpoke'
This commit is contained in:
parent
8f7b56e275
commit
e64aa1b4f2
@ -15,7 +15,7 @@
|
||||
* 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>
|
||||
|
||||
@ -121,6 +121,9 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
|
||||
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,
|
||||
|
@ -15,7 +15,7 @@
|
||||
* 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
|
||||
@ -47,6 +47,7 @@
|
||||
#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);
|
||||
|
@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.h,v 1.66 2002/06/13 05:12:54 marka Exp $ */
|
||||
/* $Id: server.h,v 1.67 2002/09/08 18:34:04 explorer Exp $ */
|
||||
|
||||
#ifndef NAMED_SERVER_H
|
||||
#define NAMED_SERVER_H 1
|
||||
@ -73,6 +73,7 @@ struct ns_server {
|
||||
|
||||
isc_timer_t * interface_timer;
|
||||
isc_timer_t * heartbeat_timer;
|
||||
isc_timer_t * check_timer;
|
||||
isc_uint32_t interface_interval;
|
||||
isc_uint32_t heartbeat_interval;
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
* 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>
|
||||
|
||||
@ -1561,6 +1561,16 @@ heartbeat_timer_tick(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
@ -1902,6 +1912,17 @@ load_configuration(const char *filename, ns_server_t *server,
|
||||
}
|
||||
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
|
||||
@ -2288,6 +2309,12 @@ run_server(isc_task_t *task, isc_event_t *event) {
|
||||
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");
|
||||
|
||||
@ -2349,6 +2376,7 @@ shutdown_server(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
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);
|
||||
@ -2436,6 +2464,7 @@ ns_server_create(isc_mem_t *mctx, ns_server_t **serverp) {
|
||||
|
||||
server->interface_timer = NULL;
|
||||
server->heartbeat_timer = NULL;
|
||||
server->check_timer = NULL;
|
||||
|
||||
server->interface_interval = 0;
|
||||
server->heartbeat_interval = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user