Mercurial > hg > nginx-vendor-current
comparison src/http/ngx_http_parse.c @ 70:8ad297c88dcb NGINX_0_1_35
nginx 0.1.35
*) Feature: the "working_directory" directive.
*) Feature: the "port_in_redirect" directive.
*) Bugfix: the segmentation fault was occurred if the backend response
header was in several packets; bug appeared in 0.1.29.
*) Bugfix: if more than 10 servers were configured or some server did
not use the "listen" directive, then the segmentation fault was
occurred on the start.
*) Bugfix: the segmentation fault might occur if the response was
bigger than the temporary file.
*) Bugfix: nginx returned the 400 response on requests like
"GET http://www.domain.com/uri HTTP/1.0"; bug appeared in 0.1.28.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 07 Jun 2005 00:00:00 +0400 |
parents | df7d3fff122b |
children | d25a1d6034f1 |
comparison
equal
deleted
inserted
replaced
69:cce7ea52608c | 70:8ad297c88dcb |
---|---|
110 | 110 |
111 /* space* before URI */ | 111 /* space* before URI */ |
112 case sw_spaces_before_uri: | 112 case sw_spaces_before_uri: |
113 | 113 |
114 c = (u_char) (ch | 0x20); | 114 c = (u_char) (ch | 0x20); |
115 if (c >= 'a' && c <= 'f') { | 115 if (c >= 'a' && c <= 'z') { |
116 r->schema_start = p; | 116 r->schema_start = p; |
117 state = sw_schema; | 117 state = sw_schema; |
118 break; | 118 break; |
119 } | 119 } |
120 | 120 |
131 break; | 131 break; |
132 | 132 |
133 case sw_schema: | 133 case sw_schema: |
134 | 134 |
135 c = (u_char) (ch | 0x20); | 135 c = (u_char) (ch | 0x20); |
136 if (c >= 'a' && c <= 'f') { | 136 if (c >= 'a' && c <= 'z') { |
137 break; | 137 break; |
138 } | 138 } |
139 | 139 |
140 switch (ch) { | 140 switch (ch) { |
141 case ':': | 141 case ':': |
169 break; | 169 break; |
170 | 170 |
171 case sw_host: | 171 case sw_host: |
172 | 172 |
173 c = (u_char) (ch | 0x20); | 173 c = (u_char) (ch | 0x20); |
174 if (c >= 'a' && c <= 'f') { | 174 if (c >= 'a' && c <= 'z') { |
175 break; | 175 break; |
176 } | 176 } |
177 | 177 |
178 if ((ch >= '0' && ch <= '9') || ch == '.' || ch == '-') | 178 if ((ch >= '0' && ch <= '9') || ch == '.' || ch == '-') |
179 { | 179 { |
213 | 213 |
214 /* check "/.", "//", "%", and "\" (Win32) in URI */ | 214 /* check "/.", "//", "%", and "\" (Win32) in URI */ |
215 case sw_after_slash_in_uri: | 215 case sw_after_slash_in_uri: |
216 | 216 |
217 c = (u_char) (ch | 0x20); | 217 c = (u_char) (ch | 0x20); |
218 if (c >= 'a' && c <= 'f') { | 218 if (c >= 'a' && c <= 'z') { |
219 state = sw_check_uri; | 219 state = sw_check_uri; |
220 break; | 220 break; |
221 } | 221 } |
222 | 222 |
223 if (ch >= '0' && ch <= '9') { | 223 if (ch >= '0' && ch <= '9') { |
275 | 275 |
276 /* check "/", "%" and "\" (Win32) in URI */ | 276 /* check "/", "%" and "\" (Win32) in URI */ |
277 case sw_check_uri: | 277 case sw_check_uri: |
278 | 278 |
279 c = (u_char) (ch | 0x20); | 279 c = (u_char) (ch | 0x20); |
280 if (c >= 'a' && c <= 'f') { | 280 if (c >= 'a' && c <= 'z') { |
281 break; | 281 break; |
282 } | 282 } |
283 | 283 |
284 if (ch >= '0' && ch <= '9') { | 284 if (ch >= '0' && ch <= '9') { |
285 break; | 285 break; |