diff src/http/ngx_http_parse.c @ 99:a059e1aa65d4

nginx-0.0.1-2003-06-02-19:24:30 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 02 Jun 2003 15:24:30 +0000
parents 637625a2acdb
children 2a615b036870
line wrap: on
line diff
--- 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
             }
             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
                 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
             }
             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
                 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;