]> git.kaiwu.me - nginx.git/commitdiff
Reconsidered server_tokens with an empty value.
authorRuslan Ermilov <ru@nginx.com>
Tue, 22 Mar 2016 12:52:28 +0000 (15:52 +0300)
committerRuslan Ermilov <ru@nginx.com>
Tue, 22 Mar 2016 12:52:28 +0000 (15:52 +0300)
An empty value will be treated as "off".

src/http/ngx_http_header_filter_module.c
src/http/ngx_http_special_response.c
src/http/v2/ngx_http_v2_filter_module.c

index 45a8b6ceb23f439975769fcb939ce79a61ee2ff4..86bcabc1abe7964037552d1849dcee0a269aa9d8 100644 (file)
@@ -295,12 +295,12 @@ ngx_http_header_filter(ngx_http_request_t *r)
                 return NGX_ERROR;
             }
 
-            if (tokens.len == 3
-                && ngx_strncmp(tokens.data, "off", 3) == 0)
+            if (tokens.len == 0
+                || (tokens.len == 3 && ngx_strncmp(tokens.data, "off", 3) == 0))
             {
                 ngx_str_set(&tokens, ngx_http_server_string);
 
-            } else if (tokens.len) {
+            } else {
                 ngx_str_set(&tokens, ngx_http_server_full_string);
             }
         }
@@ -481,7 +481,7 @@ ngx_http_header_filter(ngx_http_request_t *r)
     }
     *b->last++ = CR; *b->last++ = LF;
 
-    if (r->headers_out.server == NULL && tokens.len) {
+    if (r->headers_out.server == NULL) {
         b->last = ngx_cpymem(b->last, tokens.data, tokens.len);
     }
 
index 7987309a6fa0e60ca69c4e74cf0fd143b3a49c60..70fdf440dd0d5f9635efce60318cca315ab5766a 100644 (file)
@@ -32,12 +32,6 @@ static u_char ngx_http_error_tail[] =
 ;
 
 
-static u_char ngx_http_error_no_tail[] =
-"</body>" CRLF
-"</html>" CRLF
-;
-
-
 static u_char ngx_http_msie_padding[] =
 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
@@ -638,16 +632,13 @@ ngx_http_send_special_response(ngx_http_request_t *r,
                 return NGX_ERROR;
             }
 
-            if (tokens.len == 3
-                && ngx_strncmp(tokens.data, "off", 3) == 0)
+            if (tokens.len == 0
+                || (tokens.len == 3 && ngx_strncmp(tokens.data, "off", 3) == 0))
             {
                 ngx_str_set(&tail, ngx_http_error_tail);
 
-            } else if (tokens.len) {
-                ngx_str_set(&tail, ngx_http_error_full_tail);
-
             } else {
-                ngx_str_set(&tail, ngx_http_error_no_tail);
+                ngx_str_set(&tail, ngx_http_error_full_tail);
             }
         }
 
index 235a006ffdbbec343fbf2fee845d892cd783c7d1..624ef1e990c533cebf3be9679f006ca6d7bf0649 100644 (file)
@@ -252,14 +252,14 @@ ngx_http_v2_header_filter(ngx_http_request_t *r)
                 return NGX_ERROR;
             }
 
-            if (tokens.len == 3
-                && ngx_strncmp(tokens.data, "off", 3) == 0)
+            if (tokens.len == 0
+                || (tokens.len == 3 && ngx_strncmp(tokens.data, "off", 3) == 0))
             {
                 server_tokens = 0;
                 len += 1 + sizeof(nginx);
                 ngx_str_set(&tokens, "nginx");
 
-            } else if (tokens.len) {
+            } else {
                 server_tokens = 1;
                 len += 1 + nginx_ver_len;
                 ngx_str_set(&tokens, NGINX_VER);
@@ -468,7 +468,7 @@ ngx_http_v2_header_filter(ngx_http_request_t *r)
         pos = ngx_sprintf(pos, "%03ui", r->headers_out.status);
     }
 
-    if (r->headers_out.server == NULL && tokens.len) {
+    if (r->headers_out.server == NULL) {
         ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0,
                        "http2 output header: \"server: %V\"",
                        &tokens);