diff src/http/ngx_http_parse.c @ 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 267ea1d98683
children 00cafae0bdf1
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;
             }