Core: add ability to change the server name at build time. Change-Id: I26f1179a15f612166b1214502bb1a3f8f563c60d Signed-off-by: Piotr Sikora <piotrsikora@google.com> Reviewed-on: https://nginx-review.googlesource.com/2580 Reviewed-by: Lizan Zhou <zlizan@google.com>
diff --git a/src/core/nginx.h b/src/core/nginx.h index 1446251..955a39b 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h
@@ -9,9 +9,13 @@ #define _NGINX_H_INCLUDED_ +#ifndef NGINX_NAME +#define NGINX_NAME "nginx" +#endif + #define nginx_version 1011005 #define NGINX_VERSION "1.11.5" -#define NGINX_VER "nginx/" NGINX_VERSION +#define NGINX_VER NGINX_NAME "/" NGINX_VERSION #ifdef NGX_BUILD #define NGINX_VER_BUILD NGINX_VER " (" NGX_BUILD ")"
diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c index 0217a9f..fc4d3e9 100644 --- a/src/http/ngx_http_header_filter_module.c +++ b/src/http/ngx_http_header_filter_module.c
@@ -46,7 +46,7 @@ }; -static char ngx_http_server_string[] = "Server: nginx" CRLF; +static char ngx_http_server_string[] = "Server: " NGINX_NAME CRLF; static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
diff --git a/src/http/ngx_http_special_response.c b/src/http/ngx_http_special_response.c index 3cd6fab..9794434 100644 --- a/src/http/ngx_http_special_response.c +++ b/src/http/ngx_http_special_response.c
@@ -26,7 +26,7 @@ static u_char ngx_http_error_tail[] = -"<hr><center>nginx</center>" CRLF +"<hr><center>" NGINX_NAME "</center>" CRLF "</body>" CRLF "</html>" CRLF ;
diff --git a/src/http/v2/ngx_http_v2_filter_module.c b/src/http/v2/ngx_http_v2_filter_module.c index 7fe7f17..f63c7da 100644 --- a/src/http/v2/ngx_http_v2_filter_module.c +++ b/src/http/v2/ngx_http_v2_filter_module.c
@@ -141,12 +141,13 @@ ngx_http_core_srv_conf_t *cscf; u_char addr[NGX_SOCKADDR_STRLEN]; - static const u_char nginx[5] = "\x84\xaa\x63\x55\xe7"; #if (NGX_HTTP_GZIP || NGX_COMPAT) static const u_char accept_encoding[12] = "\x8b\x84\x84\x2d\x69\x5b\x05\x44\x3c\x86\xaa\x6f"; #endif + static size_t nginx_name_len = ngx_http_v2_literal_size(NGINX_NAME); + static u_char nginx_name[ngx_http_v2_literal_size(NGINX_NAME)]; static size_t nginx_ver_len = ngx_http_v2_literal_size(NGINX_VER); static u_char nginx_ver[ngx_http_v2_literal_size(NGINX_VER)]; @@ -234,7 +235,7 @@ clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); if (r->headers_out.server == NULL) { - len += 1 + (clcf->server_tokens ? nginx_ver_len : sizeof(nginx)); + len += 1 + (clcf->server_tokens ? nginx_ver_len : nginx_name_len); } if (r->headers_out.date == NULL) { @@ -422,7 +423,7 @@ if (r->headers_out.server == NULL) { ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0, "http2 output header: \"server: %s\"", - clcf->server_tokens ? NGINX_VER : "nginx"); + clcf->server_tokens ? NGINX_VER : NGINX_NAME); *pos++ = ngx_http_v2_inc_indexed(NGX_HTTP_V2_SERVER_INDEX); @@ -436,7 +437,13 @@ pos = ngx_cpymem(pos, nginx_ver, nginx_ver_len); } else { - pos = ngx_cpymem(pos, nginx, sizeof(nginx)); + if (nginx_name[0] == '\0') { + p = ngx_http_v2_write_value(nginx_name, (u_char *) NGINX_NAME, + sizeof(NGINX_NAME) - 1, tmp); + nginx_name_len = p - nginx_name; + } + + pos = ngx_cpymem(pos, nginx_name, nginx_name_len); } }