comparison src/http/ngx_http_parse.c @ 576:01f2313e34f1 NGINX_0_8_40

nginx 0.8.40 *) Security: now nginx/Windows ignores default file stream name. Thanks to Jose Antonio Vazquez Gonzalez. *) Feature: the ngx_http_uwsgi_module. Thanks to Roberto De Ioris. *) Feature: a "fastcgi_param" directive with value starting with "HTTP_" overrides a client request header line. *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request header lines were passed to FastCGI-server while caching. *) Bugfix: listen unix domain socket could not be changed during reconfiguration. Thanks to Maxim Dounin.
author Igor Sysoev <http://sysoev.ru>
date Mon, 07 Jun 2010 00:00:00 +0400
parents ff463db0be31
children bc110f60c0de
comparison
equal deleted inserted replaced
575:6ad548c0b830 576:01f2313e34f1
1185 1185
1186 case sw_quoted_second: 1186 case sw_quoted_second:
1187 if (ch >= '0' && ch <= '9') { 1187 if (ch >= '0' && ch <= '9') {
1188 ch = (u_char) ((decoded << 4) + ch - '0'); 1188 ch = (u_char) ((decoded << 4) + ch - '0');
1189 1189
1190 if (ch == '%') { 1190 if (ch == '%' || ch == '#') {
1191 state = sw_usual; 1191 state = sw_usual;
1192 *u++ = ch; 1192 *u++ = ch;
1193 ch = *p++; 1193 ch = *p++;
1194 break; 1194 break;
1195 }
1196
1197 if (ch == '#') {
1198 *u++ = ch;
1199 ch = *p++;
1200 1195
1201 } else if (ch == '\0') { 1196 } else if (ch == '\0') {
1202 return NGX_HTTP_PARSE_INVALID_REQUEST; 1197 return NGX_HTTP_PARSE_INVALID_REQUEST;
1203 } 1198 }
1204 1199
1209 c = (u_char) (ch | 0x20); 1204 c = (u_char) (ch | 0x20);
1210 if (c >= 'a' && c <= 'f') { 1205 if (c >= 'a' && c <= 'f') {
1211 ch = (u_char) ((decoded << 4) + c - 'a' + 10); 1206 ch = (u_char) ((decoded << 4) + c - 'a' + 10);
1212 1207
1213 if (ch == '?') { 1208 if (ch == '?') {
1209 state = sw_usual;
1214 *u++ = ch; 1210 *u++ = ch;
1215 ch = *p++; 1211 ch = *p++;
1212 break;
1216 1213
1217 } else if (ch == '+') { 1214 } else if (ch == '+') {
1218 r->plus_in_uri = 1; 1215 r->plus_in_uri = 1;
1219 } 1216 }
1220 1217