diff --git a/server/core.c b/server/core.c index cb8e463..daf76b3 100644 --- a/server/core.c +++ b/server/core.c @@ -3430,6 +3430,7 @@ enum server_token_type { 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_FULL_RELEASE, /* eg: Apache/2.0.41 (UNIX) (Release 32.el7) PHP/4.2.2 FooBar/1.2b */ SrvTk_PRODUCT_ONLY /* eg: Apache */ }; static enum server_token_type ap_server_tokens = SrvTk_FULL; @@ -3506,7 +3507,10 @@ static void set_banner(apr_pool_t *pconf) else if (ap_server_tokens == SrvTk_MAJOR) { ap_add_version_component(pconf, AP_SERVER_BASEPRODUCT "/" AP_SERVER_MAJORVERSION); } - else { + else if (ap_server_tokens == SrvTk_FULL_RELEASE) { + ap_add_version_component(pconf, AP_SERVER_BASEVERSION " (" PLATFORM ") (Release @RELEASE@)"); + } + else { ap_add_version_component(pconf, AP_SERVER_BASEVERSION " (" PLATFORM ")"); } @@ -3514,7 +3518,7 @@ static void set_banner(apr_pool_t *pconf) * Lock the server_banner string if we're not displaying * the full set of tokens */ - if (ap_server_tokens != SrvTk_FULL) { + if (ap_server_tokens != SrvTk_FULL && ap_server_tokens != SrvTk_FULL_RELEASE) { banner_locked++; } server_description = AP_SERVER_BASEVERSION " (" PLATFORM ")"; @@ -3547,8 +3551,11 @@ static const char *set_serv_tokens(cmd_parms *cmd, void *dummy, else if (!strcasecmp(arg, "Full")) { ap_server_tokens = SrvTk_FULL; } + else if (!strcasecmp(arg, "Full-Release")) { + ap_server_tokens = SrvTk_FULL_RELEASE; + } 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 'Full-Release'"; } return NULL;