Mercurial > hg > nginx
diff src/http/ngx_http_parse.c @ 71:59229033ae93
nginx-0.0.1-2003-04-08-19:40:10 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 08 Apr 2003 15:40:10 +0000 |
parents | 5a7d1aaa1618 |
children | 66de3f065886 |
line wrap: on
line diff
--- a/src/http/ngx_http_parse.c +++ b/src/http/ngx_http_parse.c @@ -338,6 +338,7 @@ int ngx_read_http_header_line(ngx_http_r sw_space_after_value, sw_almost_done, sw_header_almost_done, + sw_ignore_line, sw_done, sw_header_done } state; @@ -404,6 +405,14 @@ int ngx_read_http_header_line(ngx_http_r break; } + if (ch == '/') { + /* IIS can send duplicate "HTTP/1.1 ..." lines */ + if (r->proxy && ngx_strncmp(r->header_start, "HTTP", 4) == 0) { + state = sw_ignore_line; + break; + } + } + return NGX_HTTP_PARSE_INVALID_HEADER; /* space* before header value */ @@ -461,6 +470,17 @@ int ngx_read_http_header_line(ngx_http_r } break; + /* ignore header line */ + case sw_ignore_line: + switch (ch) { + case LF: + state = sw_start; + break; + default: + break; + } + break; + /* end of header line */ case sw_almost_done: switch (ch) {