diff options
author | Igor Sysoev <igor@sysoev.ru> | 2010-06-30 14:39:28 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2010-06-30 14:39:28 +0000 |
commit | ffcae99251e5f74d73a9aa56012a924aae0076d5 (patch) | |
tree | 71a81743e877499bd07b028e22b00bb639b842dd /src | |
parent | bcd78e22e97d4c870b5104d0c540caaa972176ed (diff) | |
download | nginx-ffcae99251e5f74d73a9aa56012a924aae0076d5.tar.gz nginx-ffcae99251e5f74d73a9aa56012a924aae0076d5.zip |
Fix processing
error_page 502 504 /zero;
location = /zero { return 204; }
The bug has been introduced in r3634.
The fix also allow to use:
error_page 502 504 = /zero;
location = /zero { return 200; }
This case still does not work:
error_page 502 504 /zero;
location = /zero { return 200; }
Diffstat (limited to 'src')
-rw-r--r-- | src/http/ngx_http_core_module.c | 1 | ||||
-rw-r--r-- | src/http/ngx_http_header_filter_module.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index 984d30617..1654510be 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -1748,6 +1748,7 @@ ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status, r->headers_out.status = status; if (status == NGX_HTTP_NO_CONTENT) { + r->header_only = 1; return ngx_http_send_header(r); } diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c index a8687d0a6..bccf63624 100644 --- a/src/http/ngx_http_header_filter_module.c +++ b/src/http/ngx_http_header_filter_module.c @@ -170,6 +170,10 @@ ngx_http_header_filter(ngx_http_request_t *r) #endif u_char addr[NGX_SOCKADDR_STRLEN]; + if (r->header_sent) { + return NGX_OK; + } + r->header_sent = 1; if (r != r->main) { |