diff options
author | Igor Sysoev <igor@sysoev.ru> | 2003-06-02 15:24:30 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2003-06-02 15:24:30 +0000 |
commit | 7578ec9df43bbb31db5291f1b76359d10900a679 (patch) | |
tree | 87d7b3cb729c0e07b21d52737fd76e12a0c17d72 /src/http/ngx_http_parse.c | |
parent | aa3436c04c222d57498bfa34c9fdec50f07fd08d (diff) | |
download | nginx-7578ec9df43bbb31db5291f1b76359d10900a679.tar.gz nginx-7578ec9df43bbb31db5291f1b76359d10900a679.zip |
nginx-0.0.1-2003-06-02-19:24:30 import
Diffstat (limited to 'src/http/ngx_http_parse.c')
-rw-r--r-- | src/http/ngx_http_parse.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c index a7784a36d..e02805be8 100644 --- a/src/http/ngx_http_parse.c +++ b/src/http/ngx_http_parse.c @@ -175,7 +175,7 @@ int ngx_parse_http_request_line(ngx_http_request_t *r) } break; - /* check "/." or "//" */ + /* check "/.", "//", and "%" in URI */ case sw_after_slash_in_uri: switch (ch) { case CR: @@ -193,6 +193,7 @@ int ngx_parse_http_request_line(ngx_http_request_t *r) state = sw_http_09; break; case '.': + case '%': r->complex_uri = 1; state = sw_uri; break; @@ -211,7 +212,7 @@ int ngx_parse_http_request_line(ngx_http_request_t *r) } break; - /* check slash in URI */ + /* check "/" and "%" in URI */ case sw_check_uri: switch (ch) { case CR: @@ -235,6 +236,10 @@ int ngx_parse_http_request_line(ngx_http_request_t *r) r->uri_ext = NULL; state = sw_after_slash_in_uri; break; + case '%': + r->complex_uri = 1; + state = sw_uri; + break; case '?': r->args_start = p; state = sw_uri; |