comparison src/http/ngx_http_special_response.c @ 438:ce4f9ff90bfa NGINX_0_7_31

nginx 0.7.31 *) Change: now the "try_files" directive tests files only and ignores directories. *) Feature: the "fastcgi_split_path_info" directive. *) Bugfixes in an "Expect" request header line support. *) Bugfixes in geo ranges. *) Bugfix: in a miss case ngx_http_memcached_module returned the "END" line as response body instead of default 404 page body; the bug had appeared in 0.7.18. Thanks to Maxim Dounin. *) Bugfix: while SMTP proxying nginx issued message "250 2.0.0 OK" instead of "235 2.0.0 OK"; the bug had appeared in 0.7.22. Thanks to Maxim Dounin.
author Igor Sysoev <http://sysoev.ru>
date Mon, 19 Jan 2009 00:00:00 +0300
parents 6ebbca3d5ed7
children c8cfb6c462ef
comparison
equal deleted inserted replaced
437:5da91f7cde93 438:ce4f9ff90bfa
377 return ngx_http_send_error_page(r, &err_page[i]); 377 return ngx_http_send_error_page(r, &err_page[i]);
378 } 378 }
379 } 379 }
380 } 380 }
381 381
382 r->expect_tested = 1;
383
382 if (ngx_http_discard_request_body(r) != NGX_OK) { 384 if (ngx_http_discard_request_body(r) != NGX_OK) {
383 error = NGX_HTTP_INTERNAL_SERVER_ERROR; 385 error = NGX_HTTP_INTERNAL_SERVER_ERROR;
384 } 386 }
385 387
386 if (clcf->msie_refresh 388 if (clcf->msie_refresh
429 431
430 static ngx_int_t 432 static ngx_int_t
431 ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page) 433 ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
432 { 434 {
433 u_char ch, *p, *last; 435 u_char ch, *p, *last;
436 ngx_int_t overwrite;
434 ngx_str_t *uri, *args, u, a; 437 ngx_str_t *uri, *args, u, a;
435 ngx_table_elt_t *location; 438 ngx_table_elt_t *location;
436 ngx_http_core_loc_conf_t *clcf; 439 ngx_http_core_loc_conf_t *clcf;
437 440
438 r->err_status = err_page->overwrite; 441 overwrite = err_page->overwrite;
442
443 if (overwrite && overwrite != NGX_HTTP_OK) {
444 r->expect_tested = 1;
445 }
446
447 r->err_status = overwrite;
439 448
440 r->zero_in_uri = 0; 449 r->zero_in_uri = 0;
441 450
442 if (err_page->uri_lengths) { 451 if (err_page->uri_lengths) {
443 if (ngx_http_script_run(r, &u, err_page->uri_lengths->elts, 0, 452 if (ngx_http_script_run(r, &u, err_page->uri_lengths->elts, 0,