From a4859091741f1acce2d4690eca95e9277f10dc44 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Wed, 12 Nov 2008 21:01:01 +0000 Subject: memcached response was stored in variable with END --- src/http/ngx_http_upstream.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index c3fc8612c..31468fc7a 100644 --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c @@ -1337,14 +1337,20 @@ ngx_http_upstream_process_header(ngx_event_t *rev) return; } - if (u->buffer.last - u->buffer.pos >= (ssize_t) u->length) { - if (u->input_filter(u->input_filter_ctx, 0) == NGX_ERROR) { + n = u->buffer.last - u->buffer.pos; + + if (n) { + u->buffer.last -= n; + + if (u->input_filter(u->input_filter_ctx, n) == NGX_ERROR) { ngx_http_upstream_finalize_request(r, u, NGX_ERROR); return; } - ngx_http_upstream_finalize_request(r, u, 0); - return; + if (u->length == 0) { + ngx_http_upstream_finalize_request(r, u, 0); + return; + } } rev->handler = ngx_http_upstream_process_body_in_memory; -- cgit