Mercurial > hg > nginx-vendor-0-7
comparison src/http/ngx_http_postpone_filter_module.c @ 76:da9a3b14312d NGINX_0_1_38
nginx 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; bug 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.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Fri, 08 Jul 2005 00:00:00 +0400 |
parents | 056fd0e5a5a6 |
children | 71c46860eb55 |
comparison
equal
deleted
inserted
replaced
75:985847bb65f9 | 76:da9a3b14312d |
---|---|
46 ngx_int_t rc; | 46 ngx_int_t rc; |
47 ngx_chain_t *out; | 47 ngx_chain_t *out; |
48 ngx_http_request_t *mr; | 48 ngx_http_request_t *mr; |
49 ngx_http_postponed_request_t *pr, **ppr; | 49 ngx_http_postponed_request_t *pr, **ppr; |
50 | 50 |
51 if (r->connection->write->error) { | 51 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
52 "http postpone filter \"%V\" %p", &r->uri, in); | |
53 | |
54 if (r->connection->closed) { | |
55 | |
56 if (r->postponed) { | |
57 r->postponed = r->postponed->next; | |
58 } | |
59 | |
52 return NGX_ERROR; | 60 return NGX_ERROR; |
53 } | 61 } |
54 | |
55 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
56 "http postpone filter \"%V\" %p", &r->uri, in); | |
57 | 62 |
58 if (r != r->connection->data || (r->postponed && in)) { | 63 if (r != r->connection->data || (r->postponed && in)) { |
59 | 64 |
60 if (r->postponed) { | 65 if (r->postponed) { |
61 for (pr = r->postponed; pr->next; pr = pr->next) { /* void */ } | 66 for (pr = r->postponed; pr->next; pr = pr->next) { /* void */ } |
110 | 115 |
111 rc = ngx_http_next_filter(mr, out); | 116 rc = ngx_http_next_filter(mr, out); |
112 | 117 |
113 if (rc == NGX_ERROR) { | 118 if (rc == NGX_ERROR) { |
114 /* NGX_ERROR may be returned by any filter */ | 119 /* NGX_ERROR may be returned by any filter */ |
115 r->connection->write->error = 1; | 120 r->connection->closed = 1; |
116 } | 121 } |
117 | 122 |
118 return rc; | 123 return rc; |
119 } | 124 } |
120 | 125 |