Mercurial > hg > nginx-quic
comparison src/http/ngx_http_header_filter_module.c @ 6885:25203fc377fb
Implemented the "server_tokens build" option.
Based on a patch by Tom Thorogood.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Tue, 31 Jan 2017 12:09:40 +0300 |
parents | d15172ebb400 |
children | 3ef4cadfad7f |
comparison
equal
deleted
inserted
replaced
6884:640f03529395 | 6885:25203fc377fb |
---|---|
44 NULL, /* exit master */ | 44 NULL, /* exit master */ |
45 NGX_MODULE_V1_PADDING | 45 NGX_MODULE_V1_PADDING |
46 }; | 46 }; |
47 | 47 |
48 | 48 |
49 static char ngx_http_server_string[] = "Server: nginx" CRLF; | 49 static u_char ngx_http_server_string[] = "Server: nginx" CRLF; |
50 static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF; | 50 static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF; |
51 static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF; | |
51 | 52 |
52 | 53 |
53 static ngx_str_t ngx_http_status_lines[] = { | 54 static ngx_str_t ngx_http_status_lines[] = { |
54 | 55 |
55 ngx_string("200 OK"), | 56 ngx_string("200 OK"), |
272 } | 273 } |
273 | 274 |
274 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); | 275 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); |
275 | 276 |
276 if (r->headers_out.server == NULL) { | 277 if (r->headers_out.server == NULL) { |
277 len += clcf->server_tokens ? sizeof(ngx_http_server_full_string) - 1: | 278 if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) { |
278 sizeof(ngx_http_server_string) - 1; | 279 len += sizeof(ngx_http_server_full_string) - 1; |
280 | |
281 } else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) { | |
282 len += sizeof(ngx_http_server_build_string) - 1; | |
283 | |
284 } else { | |
285 len += sizeof(ngx_http_server_string) - 1; | |
286 } | |
279 } | 287 } |
280 | 288 |
281 if (r->headers_out.date == NULL) { | 289 if (r->headers_out.date == NULL) { |
282 len += sizeof("Date: Mon, 28 Sep 1970 06:00:00 GMT" CRLF) - 1; | 290 len += sizeof("Date: Mon, 28 Sep 1970 06:00:00 GMT" CRLF) - 1; |
283 } | 291 } |
434 b->last = ngx_sprintf(b->last, "%03ui ", status); | 442 b->last = ngx_sprintf(b->last, "%03ui ", status); |
435 } | 443 } |
436 *b->last++ = CR; *b->last++ = LF; | 444 *b->last++ = CR; *b->last++ = LF; |
437 | 445 |
438 if (r->headers_out.server == NULL) { | 446 if (r->headers_out.server == NULL) { |
439 if (clcf->server_tokens) { | 447 if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) { |
440 p = (u_char *) ngx_http_server_full_string; | 448 p = ngx_http_server_full_string; |
441 len = sizeof(ngx_http_server_full_string) - 1; | 449 len = sizeof(ngx_http_server_full_string) - 1; |
442 | 450 |
451 } else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) { | |
452 p = ngx_http_server_build_string; | |
453 len = sizeof(ngx_http_server_build_string) - 1; | |
454 | |
443 } else { | 455 } else { |
444 p = (u_char *) ngx_http_server_string; | 456 p = ngx_http_server_string; |
445 len = sizeof(ngx_http_server_string) - 1; | 457 len = sizeof(ngx_http_server_string) - 1; |
446 } | 458 } |
447 | 459 |
448 b->last = ngx_cpymem(b->last, p, len); | 460 b->last = ngx_cpymem(b->last, p, len); |
449 } | 461 } |