summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2008-07-07 11:32:02 +0000
committerIgor Sysoev <igor@sysoev.ru>2008-07-07 11:32:02 +0000
commit3d16f9aa0a6562cf4fb0d6edece1ecfce69b8001 (patch)
tree3794b031107a3804de2078288a92596c1e0d5e54
parent3ed2b639a4a6a15d4162ae0f66dcc3727825ff57 (diff)
downloadnginx-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.c15
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;
}