summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2008-07-07 11:59:59 +0000
committerIgor Sysoev <igor@sysoev.ru>2008-07-07 11:59:59 +0000
commit5bba35d25b56a7d77ba4815737174aea66541313 (patch)
tree23f589da677d6262c020f5b9778f47463c2492b5
parent4012d9909c4f15c5aa6b1feedcb1abfbb7575dc3 (diff)
downloadnginx-5bba35d25b56a7d77ba4815737174aea66541313.tar.gz
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;
}