do not test "..." case since it's Win9x family feature only
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index 5bb6bb7..fd48fcd 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -950,9 +950,6 @@
sw_slash,
sw_dot,
sw_dot_dot,
-#if (NGX_WIN32)
- sw_dot_dot_dot,
-#endif
sw_quoted,
sw_quoted_second
} state, quoted_state;
@@ -1154,12 +1151,6 @@
goto args;
case '#':
goto done;
-#if (NGX_WIN32)
- case '.':
- state = sw_dot_dot_dot;
- *u++ = ch;
- break;
-#endif
case '+':
r->plus_in_uri = 1;
default:
@@ -1171,55 +1162,6 @@
ch = *p++;
break;
-#if (NGX_WIN32)
- case sw_dot_dot_dot:
-
- if (usual[ch >> 5] & (1 << (ch & 0x1f))) {
- state = sw_usual;
- *u++ = ch;
- ch = *p++;
- break;
- }
-
- switch(ch) {
- case '\\':
- case '/':
- state = sw_slash;
- u -= 5;
- if (u < r->uri.data) {
- return NGX_HTTP_PARSE_INVALID_REQUEST;
- }
- while (*u != '/') {
- u--;
- }
- if (u < r->uri.data) {
- return NGX_HTTP_PARSE_INVALID_REQUEST;
- }
- while (*(u - 1) != '/') {
- u--;
- }
- break;
- case '%':
- quoted_state = state;
- state = sw_quoted;
- break;
- case '?':
- r->args_start = p;
- goto args;
- case '#':
- goto done;
- case '+':
- r->plus_in_uri = 1;
- default:
- state = sw_usual;
- *u++ = ch;
- break;
- }
-
- ch = *p++;
- break;
-#endif
-
case sw_quoted:
r->quoted_uri = 1;
@@ -1369,20 +1311,6 @@
if (p[0] == '.' && p[1] == '.' && ngx_path_separator(p[2])) {
goto unsafe;
}
-
-#if (NGX_WIN32)
-
- if (len > 3) {
-
- /* detect "/.../" */
-
- if (p[0] == '.' && p[1] == '.' && p[2] == '.'
- && ngx_path_separator(p[3]))
- {
- goto unsafe;
- }
- }
-#endif
}
}