summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/http_core.h2
-rw-r--r--include/http_main.h2
-rw-r--r--modules/generators/mod_status.c4
-rw-r--r--server/core.c3
-rw-r--r--server/main.c1
5 files changed, 11 insertions, 1 deletions
diff --git a/include/http_core.h b/include/http_core.h
index e674915b8a..ba66de8400 100644
--- a/include/http_core.h
+++ b/include/http_core.h
@@ -808,6 +808,8 @@ AP_DECLARE(int) ap_state_query(int query_code);
#define AP_SQ_MAIN_STATE 0
/** are we going to serve requests or are we just testing/dumping config */
#define AP_SQ_RUN_MODE 1
+ /** generation of the top-level apache parent */
+#define AP_SQ_CONFIG_GEN 2
/*
* return values for ap_state_query()
diff --git a/include/http_main.h b/include/http_main.h
index d23e049924..68ecf27a0d 100644
--- a/include/http_main.h
+++ b/include/http_main.h
@@ -51,6 +51,8 @@ AP_DECLARE_DATA extern apr_pool_t *ap_pglobal;
AP_DECLARE_DATA extern int ap_main_state;
/** run mode (normal, config test, config dump, ...) */
AP_DECLARE_DATA extern int ap_run_mode;
+/** run mode (normal, config test, config dump, ...) */
+AP_DECLARE_DATA extern int ap_config_generation;
/* for -C, -c and -D switches */
/** An array of all -C directives. These are processed before the server's
diff --git a/modules/generators/mod_status.c b/modules/generators/mod_status.c
index 0b1c3dba97..7a816b2568 100644
--- a/modules/generators/mod_status.c
+++ b/modules/generators/mod_status.c
@@ -390,7 +390,9 @@ static int status_handler(request_rec *r)
ap_scoreboard_image->global->restart_time,
DEFAULT_TIME_FORMAT, 0),
"</dt>\n", NULL);
- ap_rprintf(r, "<dt>Parent Server Generation: %d</dt>\n",
+ ap_rprintf(r, "<dt>Parent Server Config. Generation: %d</dt>\n",
+ ap_state_query(AP_SQ_CONFIG_GEN));
+ ap_rprintf(r, "<dt>Parent Server MPM Generation: %d</dt>\n",
(int)mpm_generation);
ap_rputs("<dt>Server uptime: ", r);
show_time(r, up_time);
diff --git a/server/core.c b/server/core.c
index 73ae3b8edb..a521eac465 100644
--- a/server/core.c
+++ b/server/core.c
@@ -112,6 +112,7 @@ static apr_table_t *server_config_defined_vars = NULL;
AP_DECLARE_DATA int ap_main_state = AP_SQ_MS_INITIAL_STARTUP;
AP_DECLARE_DATA int ap_run_mode = AP_SQ_RM_UNKNOWN;
+AP_DECLARE_DATA int ap_config_generation = 1;
static void *create_core_dir_config(apr_pool_t *a, char *dir)
{
@@ -4368,6 +4369,8 @@ AP_DECLARE(int) ap_state_query(int query)
return ap_main_state;
case AP_SQ_RUN_MODE:
return ap_run_mode;
+ case AP_SQ_CONFIG_GEN:
+ return ap_config_generation;
default:
return AP_SQ_NOT_SUPPORTED;
}
diff --git a/server/main.c b/server/main.c
index b1f445f124..3b38bdde15 100644
--- a/server/main.c
+++ b/server/main.c
@@ -686,6 +686,7 @@ int main(int argc, const char * const argv[])
apr_pool_destroy(ptemp);
for (;;) {
+ ap_config_generation++;
ap_main_state = AP_SQ_MS_DESTROY_CONFIG;
apr_hook_deregister_all();
apr_pool_clear(pconf);