]> git.kaiwu.me - nginx.git/commitdiff
r2821 merge:
authorIgor Sysoev <igor@sysoev.ru>
Mon, 18 May 2009 16:19:49 +0000 (16:19 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 18 May 2009 16:19:49 +0000 (16:19 +0000)
test already destroyed request

src/http/ngx_http_core_module.c

index cfc6492995656c510ab3b9f0cd3dafb614fab106..c312a05f76ff2a3026b7a9bafcc24f18c4fc1973 100644 (file)
@@ -1557,16 +1557,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;