diff src/http/ngx_http_special_response.c @ 2474:6175f886ddfb stable-0.6

r2420, r2421, r2435, r2436, r2437 merge: *) send "100 Continue" for HTTP/1.1 only *) do not send "100 Continue" for subrequests *) send "100 Continue" just before reading request body *) set send() slot for POSIX systems
author Igor Sysoev <igor@sysoev.ru>
date Mon, 26 Jan 2009 15:22:24 +0000
parents 6854b688fd77
children
line wrap: on
line diff
--- a/src/http/ngx_http_special_response.c
+++ b/src/http/ngx_http_special_response.c
@@ -378,6 +378,8 @@ ngx_http_special_response_handler(ngx_ht
         }
     }
 
+    r->expect_tested = 1;
+
     if (ngx_http_discard_request_body(r) != NGX_OK) {
         error = NGX_HTTP_INTERNAL_SERVER_ERROR;
     }
@@ -430,11 +432,18 @@ static ngx_int_t
 ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
 {
     u_char                     ch, *p, *last;
+    ngx_int_t                  overwrite;
     ngx_str_t                 *uri, *args, u, a;
     ngx_table_elt_t           *location;
     ngx_http_core_loc_conf_t  *clcf;
 
-    r->err_status = err_page->overwrite;
+    overwrite = err_page->overwrite;
+
+    if (overwrite && overwrite != NGX_HTTP_OK) {
+        r->expect_tested = 1;
+    }
+
+    r->err_status = overwrite;
 
     r->zero_in_uri = 0;