aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/http/ngx_http_core_module.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 4b300dfd5..73d7af969 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1652,16 +1652,24 @@ ngx_http_send_header(ngx_http_request_t *r)
ngx_int_t
ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *in)
{
- ngx_int_t rc;
+ ngx_int_t rc;
+ ngx_connection_t *c;
- ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ c = r->connection;
+
+ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
"http output filter \"%V?%V\"", &r->uri, &r->args);
rc = ngx_http_top_body_filter(r, in);
if (rc == NGX_ERROR) {
+
+ if (c->destroyed) {
+ return NGX_DONE;
+ }
+
/* NGX_ERROR may be returned by any filter */
- r->connection->error = 1;
+ c->error = 1;
}
return rc;