nginx-0.0.1-2003-04-08-19:40:10 import
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index 6952869..15bdb61 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -338,6 +338,7 @@
sw_space_after_value,
sw_almost_done,
sw_header_almost_done,
+ sw_ignore_line,
sw_done,
sw_header_done
} state;
@@ -404,6 +405,14 @@
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 @@
}
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) {