comparison src/http/ngx_http_write_filter_module.c @ 146:36af50a5582d NGINX_0_3_20

nginx 0.3.20 *) Bugfix: in SSI handling. *) Bugfix: the ngx_http_memcached_module did not support the keys in the "/usr?args" form.
author Igor Sysoev <http://sysoev.ru>
date Wed, 11 Jan 2006 00:00:00 +0300
parents 91372f004adf
children 13710a1813ad
comparison
equal deleted inserted replaced
145:85a84f8da62b 146:36af50a5582d
177 if (!last && !flush && in && size < (off_t) clcf->postpone_output) { 177 if (!last && !flush && in && size < (off_t) clcf->postpone_output) {
178 return NGX_OK; 178 return NGX_OK;
179 } 179 }
180 180
181 if (c->write->delayed) { 181 if (c->write->delayed) {
182 c->buffered |= NGX_HTTP_WRITE_BUFFERED;
182 return NGX_AGAIN; 183 return NGX_AGAIN;
183 } 184 }
184 185
185 if (size == 0 && !c->buffered) { 186 if (size == 0 && !(c->buffered & NGX_LOWLEVEL_BUFFERED)) {
186 if (last) { 187 if (last) {
187 r->out = NULL; 188 r->out = NULL;
189 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
190
188 return NGX_OK; 191 return NGX_OK;
189 } 192 }
190 193
191 if (flush) { 194 if (flush) {
192 do { 195 do {
193 r->out = r->out->next; 196 r->out = r->out->next;
194 } 197 } while (r->out);
195 while (r->out); 198
199 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
196 200
197 return NGX_OK; 201 return NGX_OK;
198 } 202 }
199 203
200 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, 204 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
230 ngx_free_chain(r->pool, ln); 234 ngx_free_chain(r->pool, ln);
231 } 235 }
232 236
233 r->out = chain; 237 r->out = chain;
234 238
235 if (chain || (c->buffered && r->postponed == NULL)) { 239 if (chain) {
240 c->buffered |= NGX_HTTP_WRITE_BUFFERED;
241 return NGX_AGAIN;
242 }
243
244 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
245
246 if ((c->buffered & NGX_LOWLEVEL_BUFFERED) && r->postponed == NULL) {
236 return NGX_AGAIN; 247 return NGX_AGAIN;
237 } 248 }
238 249
239 return NGX_OK; 250 return NGX_OK;
240 } 251 }