]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add a status line to rndc status notifying that server is being reloaded/reconfigured
authorWitold Kręcicki <wpk@isc.org>
Tue, 11 Dec 2018 11:58:42 +0000 (12:58 +0100)
committerWitold Kręcicki <wpk@isc.org>
Wed, 19 Dec 2018 10:32:21 +0000 (11:32 +0100)
bin/named/include/named/server.h
bin/named/server.c

index 23a0ace5f9ee76e86339b7de4f604c74c2e63434..399a14e6beb84720c8d66d73fcc33170971dc396 100644 (file)
@@ -78,6 +78,7 @@ struct named_server {
 
        isc_mutex_t             reload_event_lock;
        isc_event_t *           reload_event;
+       bool                    reload_in_progress;
 
        bool            flushonshutdown;
 
index 6c96fee6cf887a1df7a1893f6e782fc5c9ee0b8e..f664b5aea3cb4898b65e645ed2cc72e10ae7dc7e 100644 (file)
@@ -9325,6 +9325,7 @@ view_loaded(void *arg) {
                              "FIPS mode is %s",
                              FIPS_mode() ? "enabled" : "disabled");
 #endif
+               server->reload_in_progress = false;
 
                isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
                              NAMED_LOGMODULE_SERVER, ISC_LOG_NOTICE,
@@ -9660,6 +9661,7 @@ named_server_create(isc_mem_t *mctx, named_server_t **serverp) {
        CHECKFATAL(server->reload_event == NULL ?
                   ISC_R_NOMEMORY : ISC_R_SUCCESS,
                   "allocating reload event");
+       server->reload_in_progress = true;
 
        /*
         * Setup the server task, which is responsible for coordinating
@@ -9970,6 +9972,7 @@ loadconfig(named_server_t *server) {
 static isc_result_t
 reload(named_server_t *server) {
        isc_result_t result;
+       server->reload_in_progress = true;
        CHECK(loadconfig(server));
 
        result = load_zones(server, false, false);
@@ -10316,6 +10319,7 @@ named_server_reloadcommand(named_server_t *server, isc_lex_t *lex,
 isc_result_t
 named_server_reconfigcommand(named_server_t *server) {
        isc_result_t result;
+       server->reload_in_progress = true;
 
        CHECK(loadconfig(server));
 
@@ -11461,6 +11465,10 @@ named_server_status(named_server_t *server, isc_buffer_t **text) {
                     server->sctx->tcpquota.used, server->sctx->tcpquota.max);
        CHECK(putstr(text, line));
 
+       if (server->reload_in_progress) {
+               CHECK(putstr(text, "reload/reconfig in progress"));
+       }
+
        CHECK(putstr(text, "server is up and running"));
        CHECK(putnull(text));