diff --git a/server/core.c b/server/core.c index fb5e34a..e71f716 100644 --- a/server/core.c +++ b/server/core.c @@ -3115,7 +3115,8 @@ 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_PRODUCT_ONLY /* eg: Apache */ + 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; @@ -3191,7 +3192,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 ")"); } @@ -3199,7 +3203,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 ")"; @@ -3232,8 +3236,11 @@ static const char *set_serv_tokens(cmd_parms *cmd, void *dummy, else if (!strcasecmp(arg1, "Full")) { ap_server_tokens = SrvTk_FULL; } + else if (!strcasecmp(arg1, "Full-Release")) { + ap_server_tokens = SrvTk_FULL_RELEASE; + } else { - return "ServerTokens takes 1 argument, 'Prod', 'Major', 'Minor', 'Min', 'OS', or 'Full'"; + return "ServerTokens takes 1 argument, 'Prod', 'Major', 'Minor', 'Min', 'OS', 'Full' or 'Full-Release'"; } return NULL;