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;