|
Author: Pekka Helenius (~Fincer), 2018
|
|
|
|
Patch: Implements 'ServerTokens None' to Apache2/httpd Hypertext Transfer Protocol Server
|
|
Makes it possible to remove 'Server:' tag from HTTP header
|
|
|
|
--- a/server/core.c
|
|
+++ b/server/core.c
|
|
@@ -3373,7 +3373,8 @@
|
|
SrvTk_MINIMAL, /* eg: Apache/2.0.41 */
|
|
SrvTk_OS, /* eg: Apache/2.0.41 (UNIX) */
|
|
SrvTk_FULL, /* eg: Apache/2.0.41 (UNIX) PHP/4.2.2 FooBar/1.2b */
|
|
- SrvTk_PRODUCT_ONLY /* eg: Apache */
|
|
+ SrvTk_PRODUCT_ONLY, /* eg: Apache */
|
|
+ SrvTk_NONE /* Returns nothing */
|
|
};
|
|
static enum server_token_type ap_server_tokens = SrvTk_FULL;
|
|
|
|
@@ -3440,6 +3441,9 @@
|
|
if (ap_server_tokens == SrvTk_PRODUCT_ONLY) {
|
|
ap_add_version_component(pconf, AP_SERVER_BASEPRODUCT);
|
|
}
|
|
+ else if (ap_server_tokens == SrvTk_NONE) {
|
|
+ ap_add_version_component(pconf, "");
|
|
+ }
|
|
else if (ap_server_tokens == SrvTk_MINIMAL) {
|
|
ap_add_version_component(pconf, AP_SERVER_BASEVERSION);
|
|
}
|
|
@@ -3487,11 +3491,14 @@
|
|
else if (!strcasecmp(arg, "Prod") || !strcasecmp(arg, "ProductOnly")) {
|
|
ap_server_tokens = SrvTk_PRODUCT_ONLY;
|
|
}
|
|
+ else if (!strcasecmp(arg, "None")) {
|
|
+ ap_server_tokens = SrvTk_NONE;
|
|
+ }
|
|
else if (!strcasecmp(arg, "Full")) {
|
|
ap_server_tokens = SrvTk_FULL;
|
|
}
|
|
else {
|
|
- return "ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', or 'Full'";
|
|
+ return "ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', 'Full' or 'None'";
|
|
}
|
|
|
|
return NULL;
|
|
@@ -4369,7 +4376,7 @@
|
|
"A numeric IP address:port, or the name of a host"),
|
|
AP_INIT_TAKE1("ServerTokens", set_serv_tokens, NULL, RSRC_CONF,
|
|
"Determine tokens displayed in the Server: header - Min(imal), "
|
|
- "Major, Minor, Prod(uctOnly), OS, or Full"),
|
|
+ "Major, Minor, Prod(uctOnly), OS, Full or None"),
|
|
AP_INIT_TAKE1("LimitRequestLine", set_limit_req_line, NULL, RSRC_CONF,
|
|
"Limit on maximum size of an HTTP request line"),
|
|
AP_INIT_TAKE1("LimitRequestFieldsize", set_limit_req_fieldsize, NULL,
|