changeset 204:e0bcfb77d6c7

nginx-0.0.1-2003-12-02-19:57:05 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 02 Dec 2003 16:57:05 +0000
parents c9da5900c79e
children 4a9a2b1dd6fa
files src/http/ngx_http_parse.c
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -797,6 +797,12 @@ ngx_log_debug(r->connection->log, "S: %d
         case sw_quoted_second:
             if (ch >= '0' && ch <= '9') {
                 ch = (decoded << 4) + ch - '0';
+                if (ch == '%') {
+                    state = sw_usual;
+                    *u++ = ch;
+                    ch = *p++;
+                    break;
+                }
                 state = quoted_state;
                 break;
             }
@@ -804,6 +810,12 @@ ngx_log_debug(r->connection->log, "S: %d
             c = ch | 0x20;
             if (c >= 'a' && c <= 'f') {
                 ch = (decoded << 4) + c - 'a' + 10;
+                if (ch == '%') {
+                    state = sw_usual;
+                    *u++ = ch;
+                    ch = *p++;
+                    break;
+                }
                 state = quoted_state;
                 break;
             }