diff options
author | Igor Sysoev <igor@sysoev.ru> | 2008-12-23 17:25:46 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2008-12-23 17:25:46 +0000 |
commit | 8eb5ed2e77c871658e5d204865cc5bfd0f457638 (patch) | |
tree | e34f2155f88bfc09de80ad861d6ee02906ebea99 /src/http/ngx_http_core_module.c | |
parent | ce559527907bd047078603bb46a599cba8006b3d (diff) | |
download | nginx-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.c | 9 |
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; |