Mercurial > hg > nginx-vendor-0-6
comparison src/http/ngx_http_special_response.c @ 60:df7d3fff122b NGINX_0_1_30
nginx 0.1.30
*) Bugfix: the worker process may got caught in an endless loop if the
SSI was used.
*) Bugfix: the response encrypted by SSL may not transferred complete.
*) Bugfix: if the length of the response part received at once from
proxied or FastCGI server was equal to 500, then nginx returns the
500 response code; in proxy mode the bug appeared in 0.1.29 only.
*) Bugfix: nginx did not consider the directives with 8 or 9 parameters
as invalid.
*) Feature: the "return" directive can return the 204 response code.
*) Feature: the "ignore_invalid_headers" directive.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Sat, 14 May 2005 00:00:00 +0400 |
parents | b55cbf18157e |
children | 0790a8599248 |
comparison
equal
deleted
inserted
replaced
59:4cb463ba8cce | 60:df7d3fff122b |
---|---|
188 "<center><h1>504 Gateway Time-out</h1></center>" CRLF | 188 "<center><h1>504 Gateway Time-out</h1></center>" CRLF |
189 ; | 189 ; |
190 | 190 |
191 | 191 |
192 static ngx_str_t error_pages[] = { | 192 static ngx_str_t error_pages[] = { |
193 | |
194 ngx_null_string, /* 204 */ | |
195 | |
196 #define NGX_HTTP_LEVEL_200 1 | |
193 | 197 |
194 /* ngx_null_string, */ /* 300 */ | 198 /* ngx_null_string, */ /* 300 */ |
195 ngx_string(error_301_page), | 199 ngx_string(error_301_page), |
196 ngx_string(error_302_page), | 200 ngx_string(error_302_page), |
197 ngx_null_string, /* 303 */ | 201 ngx_null_string, /* 303 */ |
288 return ngx_http_internal_redirect(r, &err_page[i].uri, NULL); | 292 return ngx_http_internal_redirect(r, &err_page[i].uri, NULL); |
289 } | 293 } |
290 } | 294 } |
291 } | 295 } |
292 | 296 |
293 if (error < NGX_HTTP_BAD_REQUEST) { | 297 if (error == NGX_HTTP_NO_CONTENT) { |
298 /* 204 */ | |
299 err = 0; | |
300 | |
301 } else if (error < NGX_HTTP_BAD_REQUEST) { | |
294 /* 3XX */ | 302 /* 3XX */ |
295 err = error - NGX_HTTP_MOVED_PERMANENTLY; | 303 err = error - NGX_HTTP_MOVED_PERMANENTLY; |
296 | 304 |
297 } else if (error < NGX_HTTP_NGX_CODES) { | 305 } else if (error < NGX_HTTP_NGX_CODES) { |
298 /* 4XX */ | 306 /* 4XX */ |
299 err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_300; | 307 err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_200 |
308 + NGX_HTTP_LEVEL_300; | |
300 | 309 |
301 } else { | 310 } else { |
302 /* 49X, 5XX */ | 311 /* 49X, 5XX */ |
303 err = error - NGX_HTTP_NGX_CODES + NGX_HTTP_LEVEL_300 | 312 err = error - NGX_HTTP_NGX_CODES + NGX_HTTP_LEVEL_200 |
313 + NGX_HTTP_LEVEL_300 | |
304 + NGX_HTTP_LEVEL_400; | 314 + NGX_HTTP_LEVEL_400; |
305 switch (error) { | 315 switch (error) { |
306 case NGX_HTTP_TO_HTTPS: | 316 case NGX_HTTP_TO_HTTPS: |
307 r->headers_out.status = NGX_HTTP_BAD_REQUEST; | 317 r->headers_out.status = NGX_HTTP_BAD_REQUEST; |
308 error = NGX_HTTP_BAD_REQUEST; | 318 error = NGX_HTTP_BAD_REQUEST; |