httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sander Temme <>
Subject [Patch] Concept: have MPM identify itself in Server header
Date Fri, 03 May 2002 21:30:29 GMT

The following patch, inline and attached because of possible line-wrapping,
has the prefork MPM announce itself in the Server: header of all responses.

Having the MPM identify itself would provide insight in who is using Apache
in which configuration. It would allow groups like netstat to provide
statistics on MPM usage. The patch changes the Server string of the server
to "Server: Apache/2.0.37-dev (Unix) Prefork MPM".

I considered adding the ap_add_version_component to the prefork_pre_config
function rather than register another hook, but that would put the MPM
string before the base server component which may interfere with statics
gathering parsers. For the same reason, I didn't put it inside the base
server string. 

Finally, adding this on a per-MPM basis rather than centrally provides the
flexibility for MPMs to identify themselves in their own way or not at all.
For instance, on platforms that have only one MPM, like Win32, it wouldn't
make a lot of sense to do so. It also keeps core.c free from contamination
as it doesn't have to know about human-readable MPM names.

Any thoughts on this? Good/bad idea, good/bad place/way to put it?


Index: server/mpm/prefork/prefork.c
RCS file: /home/cvspublic/httpd-2.0/server/mpm/prefork/prefork.c,v
retrieving revision 1.262
diff -u -r1.262 prefork.c
--- server/mpm/prefork/prefork.c        8 Apr 2002 16:57:05 -0000
+++ server/mpm/prefork/prefork.c        3 May 2002 19:50:02 -0000
@@ -1244,6 +1244,13 @@
     return OK;
+static int prefork_post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t
+    ap_add_version_component(p, "Prefork MPM");
+    return OK;
 static void prefork_hooks(apr_pool_t *p)
     /* The prefork open_logs phase must run before the core's, or stderr
@@ -1258,6 +1265,7 @@
     ap_hook_open_logs(prefork_open_logs, NULL, aszSucc, APR_HOOK_MIDDLE);
     ap_hook_pre_config(prefork_pre_config, NULL, NULL, APR_HOOK_MIDDLE);
+    ap_hook_post_config(prefork_post_config, NULL, NULL, APR_HOOK_MIDDLE);
 static const char *set_daemons_to_start(cmd_parms *cmd, void *dummy, const
char *arg) 

Covalent Technologies                   
Engineering group                                Voice: (415) 536 5214
645 Howard St.                                     Fax: (415) 536 5210
San Francisco CA 94105

   PGP Fingerprint: 1E74 4E58 DFAC 2CF5 6A03  5531 AFB1 96AF B584 0AB1

This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message

View raw message