aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_core_module.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2008-12-23 17:25:46 +0000
committerIgor Sysoev <igor@sysoev.ru>2008-12-23 17:25:46 +0000
commit8eb5ed2e77c871658e5d204865cc5bfd0f457638 (patch)
treee34f2155f88bfc09de80ad861d6ee02906ebea99 /src/http/ngx_http_core_module.c
parentce559527907bd047078603bb46a599cba8006b3d (diff)
downloadnginx-8eb5ed2e77c871658e5d204865cc5bfd0f457638.tar.gz
nginx-8eb5ed2e77c871658e5d204865cc5bfd0f457638.zip
fix r2378, do not activate subrequest if there are already
postponed subrequests or data
Diffstat (limited to 'src/http/ngx_http_core_module.c')
-rw-r--r--src/http/ngx_http_core_module.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 6a72f31d5..458e4565a 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2094,9 +2094,18 @@ ngx_http_subrequest(ngx_http_request_t *r,
sr->write_event_handler = ngx_http_handler;
if (c->data == r) {
+
+ for (pr = r->postponed; pr; pr = pr->next) {
+ if (pr->request) {
+ goto no_activate;
+ }
+ }
+
c->data = sr;
}
+no_activate:
+
sr->in_addr = r->in_addr;
sr->port = r->port;
sr->port_text = r->port_text;