comparison src/http/ngx_http_postpone_filter_module.c @ 68:056fd0e5a5a6 NGINX_0_1_34

nginx 0.1.34 *) Bugfix: the worker process may got caught in an endless loop if the big response part were include by SSI. *) Bugfix: the variables set by the "set" directive were not available in SSI. *) Feature: the "autoindex_localtime" directive. *) Bugfix: the empty value of the "proxy_set_header" directive forbids the client request header line passing.
author Igor Sysoev <http://sysoev.ru>
date Thu, 26 May 2005 00:00:00 +0400
parents 0790a8599248
children da9a3b14312d
comparison
equal deleted inserted replaced
67:a6f560937e2a 68:056fd0e5a5a6
43 static ngx_int_t 43 static ngx_int_t
44 ngx_http_postpone_filter(ngx_http_request_t *r, ngx_chain_t *in) 44 ngx_http_postpone_filter(ngx_http_request_t *r, ngx_chain_t *in)
45 { 45 {
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_postponed_request_t *pr, **ppr; 49 ngx_http_postponed_request_t *pr, **ppr;
49 50
50 if (r->connection->write->error) { 51 if (r->connection->write->error) {
51 return NGX_ERROR; 52 return NGX_ERROR;
52 } 53 }
96 97
97 } else { 98 } else {
98 out = in; 99 out = in;
99 } 100 }
100 101
101 if (out == NULL && r->out == NULL && !r->connection->buffered) { 102 mr = r->main ? r->main : r;
103
104 if (out == NULL && mr->out == NULL && !mr->connection->buffered) {
102 return NGX_OK; 105 return NGX_OK;
103 } 106 }
104 107
105 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, 108 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
106 "http postpone filter out \"%V\"", &r->uri); 109 "http postpone filter out \"%V\"", &r->uri);
107 110
108 rc = ngx_http_next_filter(r->main ? r->main : r, out); 111 rc = ngx_http_next_filter(mr, out);
109 112
110 if (rc == NGX_ERROR) { 113 if (rc == NGX_ERROR) {
111 /* NGX_ERROR may be returned by any filter */ 114 /* NGX_ERROR may be returned by any filter */
112 r->connection->write->error = 1; 115 r->connection->write->error = 1;
113 } 116 }