diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2008-07-07 11:32:02 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2008-07-07 11:32:02 +0000 |
| commit | 3d16f9aa0a6562cf4fb0d6edece1ecfce69b8001 (patch) | |
| tree | 3794b031107a3804de2078288a92596c1e0d5e54 | |
| parent | 3ed2b639a4a6a15d4162ae0f66dcc3727825ff57 (diff) | |
| download | nginx-3d16f9aa0a6562cf4fb0d6edece1ecfce69b8001.tar.gz nginx-3d16f9aa0a6562cf4fb0d6edece1ecfce69b8001.tar.bz2 | |
r2067 merge:
fix bug when inactive subrequest is truncated,
if output_buffers are less than subrequest size
| -rw-r--r-- | src/http/ngx_http_postpone_filter_module.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/http/ngx_http_postpone_filter_module.c b/src/http/ngx_http_postpone_filter_module.c index 32621664c..ca5cb9e63 100644 --- a/src/http/ngx_http_postpone_filter_module.c +++ b/src/http/ngx_http_postpone_filter_module.c @@ -168,7 +168,7 @@ ngx_http_postpone_filter_output_postponed_request(ngx_http_request_t *r) pr = r->postponed; if (pr == NULL) { - return NGX_OK; + break; } if (pr->request) { @@ -196,7 +196,7 @@ ngx_http_postpone_filter_output_postponed_request(ngx_http_request_t *r) } if (pr == NULL) { - return NGX_OK; + break; } out = pr->out; @@ -215,6 +215,17 @@ ngx_http_postpone_filter_output_postponed_request(ngx_http_request_t *r) r->postponed = r->postponed->next; } + + if (r->out) { + ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, + "http postpone filter out again \"%V?%V\"", + &r->uri, &r->args); + + r->connection->data = r; + return NGX_AGAIN; + } + + return NGX_OK; } |
