# HG changeset patch # User Maxim Dounin # Date 1427134159 -10800 # Node ID 9e231d4ceccaf91b6976f0efa4d2c61c238054f9 # Parent e2e609f590940ba2b481c3c39c6a2c5b3c94e9f3 Request body: moved request body writing to save filter. diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c --- a/src/http/ngx_http_request_body.c +++ b/src/http/ngx_http_request_body.c @@ -277,20 +277,6 @@ ngx_http_do_read_client_request_body(ngx return rc; } - /* write to file */ - - if (ngx_http_write_request_body(r) != NGX_OK) { - return NGX_HTTP_INTERNAL_SERVER_ERROR; - } - - /* update chains */ - - rc = ngx_http_request_body_filter(r, NULL); - - if (rc != NGX_OK) { - return rc; - } - if (rb->busy != NULL) { return NGX_HTTP_INTERNAL_SERVER_ERROR; } @@ -1100,5 +1086,13 @@ ngx_http_request_body_save_filter(ngx_ht return NGX_HTTP_INTERNAL_SERVER_ERROR; } + if (rb->rest > 0 + && rb->buf && rb->buf->last == rb->buf->end) + { + if (ngx_http_write_request_body(r) != NGX_OK) { + return NGX_HTTP_INTERNAL_SERVER_ERROR; + } + } + return NGX_OK; }