]> granicus.if.org Git - apache/commitdiff
resurrect the old (pre-r757867) compiled-in MPM_NAME value, but via a hook for dynami...
authorJeff Trawick <trawick@apache.org>
Wed, 25 Mar 2009 15:46:56 +0000 (15:46 +0000)
committerJeff Trawick <trawick@apache.org>
Wed, 25 Mar 2009 15:46:56 +0000 (15:46 +0000)
linked MPMs

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@758312 13f79535-47bb-0310-9956-ffa450edef68

include/mpm_common.h
server/mpm/experimental/event/event.c
server/mpm/prefork/prefork.c
server/mpm/simple/simple_api.c
server/mpm/winnt/mpm_winnt.c
server/mpm/worker/worker.c
server/mpm_common.c

index f1123a5b08e17e9cea2f07c1ed9c7cdde5b60b7d..1d02a9371bc1bacea17749934959434bafb5d373 100644 (file)
@@ -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
index d11482e533d683fbc301c7b7b1b4aeac7eab7c8a..86b655f7f774f628bbefa130a83aad3a2185dc3f 100644 (file)
@@ -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,
index 4be43569cdf7f6504919f7844f7da31f6e71d64e..ca0f14693054e96accfe42fd96dbd6ba4a797f2a 100644 (file)
@@ -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)
index f6d0e539399ed04cade6720879dadfe6434f1eca..c6e271c504db751126fbc2bebb606c019844c8af 100644 (file)
@@ -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,
index 3753c0fadb5537042da536f96ea10155e0025e8a..800251ae38f5bdeb8f0129243d7c174359bfbfb4 100644 (file)
@@ -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 = {
index d5072fe8a4f1db7c586161493a6eeaedbace5e53..a8e2c035595d40b0d6b291717b3d844c4382fdb4 100644 (file)
@@ -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,
index e6a70a86a12805c03480e77f0a1033f1c451a218..d90ec0c2c14332a2800ac305ac62782c08ad24f6 100644 (file)
@@ -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();
 }