Mercurial > hg > nginx
comparison src/http/v2/ngx_http_v2_filter_module.c @ 6451:155871d773cc
Backed out server_tokens changes.
Backed out changesets: cf3e75cfa951, 6b72414dfb4f, 602dc42035fe, e5076b96fd01.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 22 Mar 2016 16:58:38 +0300 |
parents | e5076b96fd01 |
children | b3b7e33083ac 9d61ecbe979e |
comparison
equal
deleted
inserted
replaced
6450:22c32937a41f | 6451:155871d773cc |
---|---|
126 static ngx_int_t | 126 static ngx_int_t |
127 ngx_http_v2_header_filter(ngx_http_request_t *r) | 127 ngx_http_v2_header_filter(ngx_http_request_t *r) |
128 { | 128 { |
129 u_char status, *pos, *start, *p, *tmp; | 129 u_char status, *pos, *start, *p, *tmp; |
130 size_t len, tmp_len; | 130 size_t len, tmp_len; |
131 ngx_str_t host, location, tokens; | 131 ngx_str_t host, location; |
132 ngx_uint_t i, port, server_tokens; | 132 ngx_uint_t i, port; |
133 ngx_list_part_t *part; | 133 ngx_list_part_t *part; |
134 ngx_table_elt_t *header; | 134 ngx_table_elt_t *header; |
135 ngx_connection_t *fc; | 135 ngx_connection_t *fc; |
136 ngx_http_cleanup_t *cln; | 136 ngx_http_cleanup_t *cln; |
137 ngx_http_v2_out_frame_t *frame; | 137 ngx_http_v2_out_frame_t *frame; |
227 | 227 |
228 len = status ? 1 : 1 + ngx_http_v2_literal_size("418"); | 228 len = status ? 1 : 1 + ngx_http_v2_literal_size("418"); |
229 | 229 |
230 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); | 230 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); |
231 | 231 |
232 server_tokens = clcf->server_tokens; | |
233 | |
234 #if (NGX_SUPPRESS_WARN) | |
235 ngx_str_null(&tokens); | |
236 #endif | |
237 | |
238 if (r->headers_out.server == NULL) { | 232 if (r->headers_out.server == NULL) { |
239 | 233 len += 1 + (clcf->server_tokens ? nginx_ver_len : sizeof(nginx)); |
240 if (server_tokens == 0) { | |
241 len += 1 + sizeof(nginx); | |
242 ngx_str_set(&tokens, "nginx"); | |
243 | |
244 } else if (server_tokens == 1) { | |
245 len += 1 + nginx_ver_len; | |
246 ngx_str_set(&tokens, NGINX_VER); | |
247 | |
248 } else { | |
249 if (ngx_http_complex_value(r, &clcf->server_tokens_value, &tokens) | |
250 != NGX_OK) | |
251 { | |
252 return NGX_ERROR; | |
253 } | |
254 | |
255 if (tokens.len == 0 | |
256 || (tokens.len == 3 && ngx_strncmp(tokens.data, "off", 3) == 0)) | |
257 { | |
258 server_tokens = 0; | |
259 len += 1 + sizeof(nginx); | |
260 ngx_str_set(&tokens, "nginx"); | |
261 | |
262 } else { | |
263 server_tokens = 1; | |
264 len += 1 + nginx_ver_len; | |
265 ngx_str_set(&tokens, NGINX_VER); | |
266 } | |
267 } | |
268 } | 234 } |
269 | 235 |
270 if (r->headers_out.date == NULL) { | 236 if (r->headers_out.date == NULL) { |
271 len += 1 + ngx_http_v2_literal_size("Wed, 31 Dec 1986 18:00:00 GMT"); | 237 len += 1 + ngx_http_v2_literal_size("Wed, 31 Dec 1986 18:00:00 GMT"); |
272 } | 238 } |
468 pos = ngx_sprintf(pos, "%03ui", r->headers_out.status); | 434 pos = ngx_sprintf(pos, "%03ui", r->headers_out.status); |
469 } | 435 } |
470 | 436 |
471 if (r->headers_out.server == NULL) { | 437 if (r->headers_out.server == NULL) { |
472 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0, | 438 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0, |
473 "http2 output header: \"server: %V\"", | 439 "http2 output header: \"server: %s\"", |
474 &tokens); | 440 clcf->server_tokens ? NGINX_VER : "nginx"); |
475 | 441 |
476 *pos++ = ngx_http_v2_inc_indexed(NGX_HTTP_V2_SERVER_INDEX); | 442 *pos++ = ngx_http_v2_inc_indexed(NGX_HTTP_V2_SERVER_INDEX); |
477 | 443 |
478 if (server_tokens == 0) { | 444 if (clcf->server_tokens) { |
479 pos = ngx_cpymem(pos, nginx, sizeof(nginx)); | |
480 | |
481 } else { | |
482 if (nginx_ver[0] == '\0') { | 445 if (nginx_ver[0] == '\0') { |
483 p = ngx_http_v2_write_value(nginx_ver, (u_char *) NGINX_VER, | 446 p = ngx_http_v2_write_value(nginx_ver, (u_char *) NGINX_VER, |
484 sizeof(NGINX_VER) - 1, tmp); | 447 sizeof(NGINX_VER) - 1, tmp); |
485 nginx_ver_len = p - nginx_ver; | 448 nginx_ver_len = p - nginx_ver; |
486 } | 449 } |
487 | 450 |
488 pos = ngx_cpymem(pos, nginx_ver, nginx_ver_len); | 451 pos = ngx_cpymem(pos, nginx_ver, nginx_ver_len); |
452 | |
453 } else { | |
454 pos = ngx_cpymem(pos, nginx, sizeof(nginx)); | |
489 } | 455 } |
490 } | 456 } |
491 | 457 |
492 if (r->headers_out.date == NULL) { | 458 if (r->headers_out.date == NULL) { |
493 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0, | 459 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0, |