aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_parse.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-06-02 15:24:30 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-06-02 15:24:30 +0000
commit7578ec9df43bbb31db5291f1b76359d10900a679 (patch)
tree87d7b3cb729c0e07b21d52737fd76e12a0c17d72 /src/http/ngx_http_parse.c
parentaa3436c04c222d57498bfa34c9fdec50f07fd08d (diff)
downloadnginx-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.c9
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;