diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-07-08 18:34:20 +0400 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-07-08 18:34:20 +0400 |
commit | 5192b3651f2f44fb5769828a2a4060989c7e9c5f (patch) | |
tree | d1ef9dfd855e836c6f05b496be88dc835537d03f /src/http/ngx_http_postpone_filter_module.c | |
parent | 549c6c644976dc694765d77110ebd2504ff7ce2b (diff) |
nginx-0.1.38-RELEASE importrelease-0.1.38
*) Feature: the "limit_rate" directive is supported in in proxy and
FastCGI mode.
*) Feature: the "X-Accel-Limit-Rate" response header line is supported
in proxy and FastCGI mode.
*) Feature: the "break" directive.
*) Feature: the "log_not_found" directive.
*) Bugfix: the response status code was not changed when request was
redirected by the ""X-Accel-Redirect" header line.
*) Bugfix: the variables set by the "set" directive could not be used
in SSI.
*) Bugfix: the segmentation fault may occurred if the SSI page has more
than one remote subrequest.
*) Bugfix: nginx treated the backend response as invalid if the status
line in the header was transferred in two packets; the bug had
appeared in 0.1.29.
*) Feature: the "ssi_types" directive.
*) Feature: the "autoindex_exact_size" directive.
*) Bugfix: the ngx_http_autoindex_module did not support the long file
names in UTF-8.
*) Feature: the IMAP/POP3 proxy.
Diffstat (limited to 'src/http/ngx_http_postpone_filter_module.c')
-rw-r--r-- | src/http/ngx_http_postpone_filter_module.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/http/ngx_http_postpone_filter_module.c b/src/http/ngx_http_postpone_filter_module.c index 8e47816fb..d7d338f09 100644 --- a/src/http/ngx_http_postpone_filter_module.c +++ b/src/http/ngx_http_postpone_filter_module.c @@ -48,13 +48,18 @@ ngx_http_postpone_filter(ngx_http_request_t *r, ngx_chain_t *in) ngx_http_request_t *mr; ngx_http_postponed_request_t *pr, **ppr; - if (r->connection->write->error) { - return NGX_ERROR; - } - ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "http postpone filter \"%V\" %p", &r->uri, in); + if (r->connection->closed) { + + if (r->postponed) { + r->postponed = r->postponed->next; + } + + return NGX_ERROR; + } + if (r != r->connection->data || (r->postponed && in)) { if (r->postponed) { @@ -112,7 +117,7 @@ ngx_http_postpone_filter(ngx_http_request_t *r, ngx_chain_t *in) if (rc == NGX_ERROR) { /* NGX_ERROR may be returned by any filter */ - r->connection->write->error = 1; + r->connection->closed = 1; } return rc; |