summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_request.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-10-26 16:22:24 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-10-26 16:22:24 +0000
commit39625e5c46060174cb17fbc9e079aabac686ecec (patch)
treee689d342918691c6d4c76eab5503f8c04ab7dec4 /src/http/ngx_http_request.c
parentf10b4e07a562f967c5de4d9e65f2a023dd2e7ada (diff)
downloadnginx-39625e5c46060174cb17fbc9e079aabac686ecec.tar.gz
nginx-39625e5c46060174cb17fbc9e079aabac686ecec.tar.bz2
merge r2972, r2994, r3133, r3142, r3143, r3174, r3175, r3176:
various perl fixes: *) fix ngx_http_send_special() for subrequests handled by perl *) allow perl "sub{..." *) restore environ, this fixes segfault on reconfiguration failure when perl module creates new environment *) optimize error handling *) use ngx_conf_set_str_array_slot() for perl_require *) allow several perl_modules
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r--src/http/ngx_http_request.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index ebf7ca750..dae91f080 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -2706,7 +2706,14 @@ ngx_http_send_special(ngx_http_request_t *r, ngx_uint_t flags)
}
if (flags & NGX_HTTP_LAST) {
- b->last_buf = 1;
+
+ if (r == r->main && !r->post_action) {
+ b->last_buf = 1;
+
+ } else {
+ b->sync = 1;
+ b->last_in_chain = 1;
+ }
}
if (flags & NGX_HTTP_FLUSH) {