From: Jeff Trawick Date: Wed, 25 Mar 2009 15:46:56 +0000 (+0000) Subject: resurrect the old (pre-r757867) compiled-in MPM_NAME value, but via a hook for dynami... X-Git-Tag: 2.3.3~820 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5872c0a54c09d898291eec1009859472fb9a03a9;p=apache resurrect the old (pre-r757867) compiled-in MPM_NAME value, but via a hook for dynamically linked MPMs git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@758312 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/include/mpm_common.h b/include/mpm_common.h index f1123a5b08..1d02a9371b 100644 --- a/include/mpm_common.h +++ b/include/mpm_common.h @@ -391,6 +391,9 @@ AP_DECLARE_HOOK(apr_status_t, mpm_note_child_killed, (int childnum)) AP_DECLARE_HOOK(apr_status_t, mpm_register_timed_callback, (apr_time_t t, ap_mpm_callback_fn_t *cbfn, void *baton)) +/* get MPM name */ +AP_DECLARE_HOOK(const char *,mpm_get_name,(void)) + #ifdef __cplusplus } #endif diff --git a/server/mpm/experimental/event/event.c b/server/mpm/experimental/event/event.c index d11482e533..86b655f7f7 100644 --- a/server/mpm/experimental/event/event.c +++ b/server/mpm/experimental/event/event.c @@ -394,6 +394,11 @@ static apr_status_t event_note_child_killed(int childnum) return APR_SUCCESS; } +static const char *event_get_name(void) +{ + return "event"; +} + /* a clean exit from a child with proper cleanup */ static void clean_child_exit(int code) __attribute__ ((noreturn)); static void clean_child_exit(int code) @@ -2667,6 +2672,7 @@ static void event_hooks(apr_pool_t * p) ap_hook_mpm_note_child_killed(event_note_child_killed, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_mpm_register_timed_callback(event_register_timed_callback, NULL, NULL, APR_HOOK_MIDDLE); + ap_hook_mpm_get_name(event_get_name, NULL, NULL, APR_HOOK_MIDDLE); } static const char *set_daemons_to_start(cmd_parms *cmd, void *dummy, diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index 4be43569cd..ca0f146930 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -316,6 +316,11 @@ static apr_status_t prefork_note_child_killed(int childnum) return APR_SUCCESS; } +static const char *prefork_get_name(void) +{ + return "prefork"; +} + /***************************************************************** * Connection structures and accounting... */ @@ -1494,6 +1499,7 @@ static void prefork_hooks(apr_pool_t *p) ap_hook_mpm_query(prefork_query, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_mpm_get_child_pid(prefork_get_child_pid, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_mpm_note_child_killed(prefork_note_child_killed, NULL, NULL, APR_HOOK_MIDDLE); + ap_hook_mpm_get_name(prefork_get_name, NULL, NULL, APR_HOOK_MIDDLE); } static const char *set_daemons_to_start(cmd_parms *cmd, void *dummy, const char *arg) diff --git a/server/mpm/simple/simple_api.c b/server/mpm/simple/simple_api.c index f6d0e53939..c6e271c504 100644 --- a/server/mpm/simple/simple_api.c +++ b/server/mpm/simple/simple_api.c @@ -108,6 +108,12 @@ static apr_status_t simple_query(int query_code, int *result) return APR_ENOTIMPL; } +static const char * +simple_get_name(void) +{ + return "simple"; +} + static int simple_open_logs(apr_pool_t * p, apr_pool_t * plog, apr_pool_t * ptemp, server_rec * s) @@ -226,6 +232,8 @@ static void simple_hooks(apr_pool_t * p) ap_hook_mpm(simple_run, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_mpm_query(simple_query, NULL, NULL, APR_HOOK_MIDDLE); + + ap_hook_mpm_get_name(simple_get_name, NULL, NULL, APR_HOOK_MIDDLE); } static const char *set_proccount(cmd_parms * cmd, void *baton, diff --git a/server/mpm/winnt/mpm_winnt.c b/server/mpm/winnt/mpm_winnt.c index 3753c0fadb..800251ae38 100644 --- a/server/mpm/winnt/mpm_winnt.c +++ b/server/mpm/winnt/mpm_winnt.c @@ -942,6 +942,11 @@ static apr_status_t winnt_query(int query_code, int *result) return APR_ENOTIMPL; } +static const char *winnt_get_name(void) +{ + return "WinNT"; +} + #define SERVICE_UNSET (-1) static apr_status_t service_set = SERVICE_UNSET; static apr_status_t service_to_start_success; @@ -1727,6 +1732,7 @@ static void winnt_hooks(apr_pool_t *p) ap_hook_open_logs(winnt_open_logs, NULL, aszSucc, APR_HOOK_REALLY_FIRST); ap_hook_mpm(winnt_run, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_mpm_query(winnt_query, NULL, NULL, APR_HOOK_MIDDLE); + ap_hook_mpm_get_name(winnt_get_name, NULL, NULL, APR_HOOK_MIDDLE); } AP_MODULE_DECLARE_DATA module mpm_winnt_module = { diff --git a/server/mpm/worker/worker.c b/server/mpm/worker/worker.c index d5072fe8a4..a8e2c03559 100644 --- a/server/mpm/worker/worker.c +++ b/server/mpm/worker/worker.c @@ -365,6 +365,11 @@ static apr_status_t worker_note_child_killed(int childnum) return APR_SUCCESS; } +static const char *worker_get_name(void) +{ + return "worker"; +} + /* a clean exit from a child with proper cleanup */ static void clean_child_exit(int code) __attribute__ ((noreturn)); static void clean_child_exit(int code) @@ -2246,6 +2251,7 @@ static void worker_hooks(apr_pool_t *p) ap_hook_mpm_query(worker_query, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_mpm_get_child_pid(worker_get_child_pid, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_mpm_note_child_killed(worker_note_child_killed, NULL, NULL, APR_HOOK_MIDDLE); + ap_hook_mpm_get_name(worker_get_name, NULL, NULL, APR_HOOK_MIDDLE); } static const char *set_daemons_to_start(cmd_parms *cmd, void *dummy, diff --git a/server/mpm_common.c b/server/mpm_common.c index e6a70a86a1..d90ec0c2c1 100644 --- a/server/mpm_common.c +++ b/server/mpm_common.c @@ -68,6 +68,7 @@ APR_HOOK_STRUCT( APR_HOOK_LINK(mpm_get_child_pid) APR_HOOK_LINK(mpm_note_child_killed) APR_HOOK_LINK(mpm_register_timed_callback) + APR_HOOK_LINK(mpm_get_name) ) AP_IMPLEMENT_HOOK_RUN_ALL(int, fatal_exception, (ap_exception_info_t *ei), (ei), OK, DECLINED) @@ -80,6 +81,7 @@ APR_HOOK_STRUCT( APR_HOOK_LINK(mpm_get_child_pid) APR_HOOK_LINK(mpm_note_child_killed) APR_HOOK_LINK(mpm_register_timed_callback) + APR_HOOK_LINK(mpm_get_name) ) #endif AP_IMPLEMENT_HOOK_RUN_ALL(int, monitor, @@ -102,6 +104,9 @@ AP_IMPLEMENT_HOOK_RUN_FIRST(apr_status_t, mpm_note_child_killed, AP_IMPLEMENT_HOOK_RUN_FIRST(apr_status_t, mpm_register_timed_callback, (apr_time_t t, ap_mpm_callback_fn_t *cbfn, void *baton), (t, cbfn, baton), APR_ENOTIMPL) +AP_IMPLEMENT_HOOK_RUN_FIRST(const char *, mpm_get_name, + (void), + (), "") /* XXX * need better concept for controlling generation of MPM helper functions @@ -1362,6 +1367,5 @@ AP_DECLARE(apr_status_t) ap_mpm_register_timed_callback(apr_time_t t, ap_mpm_cal AP_DECLARE(const char *)ap_show_mpm(void) { - /* XXX hook this */ - return "(unknown)"; + return ap_run_mpm_get_name(); }