changeset 1072:f303d33f3927

delete temporary file for incomplete small request body
author Igor Sysoev <igor@sysoev.ru>
date Tue, 23 Jan 2007 12:55:23 +0000
parents bd4202f92581
children d82560e9d147
files src/http/ngx_http_request_body.c
diffstat 1 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -32,6 +32,7 @@ ngx_http_read_client_request_body(ngx_ht
 {
     size_t                     preread;
     ssize_t                    size;
+    ngx_int_t                  rc;
     ngx_buf_t                 *b;
     ngx_chain_t               *cl, **next;
     ngx_temp_file_t           *tf;
@@ -167,7 +168,14 @@ ngx_http_read_client_request_body(ngx_ht
 
             r->read_event_handler = ngx_http_read_client_request_body_handler;
 
-            return ngx_http_do_read_client_request_body(r);
+            rc = ngx_http_do_read_client_request_body(r);
+
+            if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
+                ngx_http_finalize_request_body(r, rc);
+                return NGX_DONE;
+            }
+
+            return rc;
         }
 
         next = &rb->bufs->next;
@@ -227,7 +235,14 @@ ngx_http_read_client_request_body(ngx_ht
 
     r->read_event_handler = ngx_http_read_client_request_body_handler;
 
-    return ngx_http_do_read_client_request_body(r);
+    rc = ngx_http_do_read_client_request_body(r);
+
+    if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
+        ngx_http_finalize_request_body(r, rc);
+        return NGX_DONE;
+    }
+
+    return rc;
 }