Mercurial > hg > nginx
comparison src/http/ngx_http_postpone_filter_module.c @ 2066:2bb4441a8c28
fix bug when inactive subrequest is truncated,
if output_buffers are less than subrequest size
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 26 Jun 2008 12:45:37 +0000 |
parents | 7e24168b0853 |
children | 173900227c06 |
comparison
equal
deleted
inserted
replaced
2065:520cb18b64fb | 2066:2bb4441a8c28 |
---|---|
166 | 166 |
167 for ( ;; ) { | 167 for ( ;; ) { |
168 pr = r->postponed; | 168 pr = r->postponed; |
169 | 169 |
170 if (pr == NULL) { | 170 if (pr == NULL) { |
171 return NGX_OK; | 171 break; |
172 } | 172 } |
173 | 173 |
174 if (pr->request) { | 174 if (pr->request) { |
175 | 175 |
176 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | 176 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
194 r->postponed = r->postponed->next; | 194 r->postponed = r->postponed->next; |
195 pr = r->postponed; | 195 pr = r->postponed; |
196 } | 196 } |
197 | 197 |
198 if (pr == NULL) { | 198 if (pr == NULL) { |
199 return NGX_OK; | 199 break; |
200 } | 200 } |
201 | 201 |
202 out = pr->out; | 202 out = pr->out; |
203 | 203 |
204 if (out) { | 204 if (out) { |
213 } | 213 } |
214 } | 214 } |
215 | 215 |
216 r->postponed = r->postponed->next; | 216 r->postponed = r->postponed->next; |
217 } | 217 } |
218 | |
219 if (r->out) { | |
220 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
221 "http postpone filter out again \"%V?%V\"", | |
222 &r->uri, &r->args); | |
223 | |
224 r->connection->data = r; | |
225 return NGX_AGAIN; | |
226 } | |
227 | |
228 return NGX_OK; | |
218 } | 229 } |
219 | 230 |
220 | 231 |
221 static ngx_int_t | 232 static ngx_int_t |
222 ngx_http_postpone_filter_init(ngx_conf_t *cf) | 233 ngx_http_postpone_filter_init(ngx_conf_t *cf) |