comparison src/event/ngx_event_pipe.c @ 168:ba5dbb949603

nginx-0.0.1-2003-10-31-10:10:36 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 31 Oct 2003 07:10:36 +0000
parents 389d7ee9fa60
children c42be4185301
comparison
equal deleted inserted replaced
167:8aef3c72e5da 168:ba5dbb949603
250 size = cl->hunk->end - cl->hunk->last; 250 size = cl->hunk->end - cl->hunk->last;
251 251
252 if (n >= size) { 252 if (n >= size) {
253 cl->hunk->last = cl->hunk->end; 253 cl->hunk->last = cl->hunk->end;
254 254
255 /* STUB */ cl->hunk->num = p->num++; 255 /* STUB */ cl->hunk->num = p->num++;
256 256
257 if (p->input_filter(p, cl->hunk) == NGX_ERROR) { 257 if (p->input_filter(p, cl->hunk) == NGX_ERROR) {
258 return NGX_ABORT; 258 return NGX_ABORT;
259 } 259 }
260 260
269 269
270 p->free_raw_hunks = cl; 270 p->free_raw_hunks = cl;
271 } 271 }
272 272
273 if ((p->upstream_eof || p->upstream_error) && p->free_raw_hunks) { 273 if ((p->upstream_eof || p->upstream_error) && p->free_raw_hunks) {
274 /* STUB */ p->free_raw_hunks->hunk->num = p->num++; 274 /* STUB */ p->free_raw_hunks->hunk->num = p->num++;
275 if (p->input_filter(p, p->free_raw_hunks->hunk) == NGX_ERROR) { 275 if (p->input_filter(p, p->free_raw_hunks->hunk) == NGX_ERROR) {
276 return NGX_ABORT; 276 return NGX_ABORT;
277 } 277 }
278 278
279 p->free_raw_hunks = p->free_raw_hunks->next; 279 p->free_raw_hunks = p->free_raw_hunks->next;
280 280
281 for (cl = p->free_raw_hunks; cl; cl = cl->next) { 281 if (p->free_bufs) {
282 ngx_pfree(p->pool, cl->hunk->start); 282 for (cl = p->free_raw_hunks; cl; cl = cl->next) {
283 ngx_pfree(p->pool, cl->hunk->start);
284 }
283 } 285 }
284 } 286 }
285 287
286 if (p->cachable && p->in) { 288 if (p->cachable && p->in) {
287 if (ngx_event_pipe_write_chain_to_temp_file(p) == NGX_ABORT) { 289 if (ngx_event_pipe_write_chain_to_temp_file(p) == NGX_ABORT) {
392 394
393 ngx_chain_update_chains(&p->free, &p->busy, &out, p->tag); 395 ngx_chain_update_chains(&p->free, &p->busy, &out, p->tag);
394 396
395 for (cl = p->free; cl; cl = cl->next) { 397 for (cl = p->free; cl; cl = cl->next) {
396 398
399 /* TODO: free hunk if p->free_bufs && upstream done */
397 /* add the free shadow raw hunk to p->free_raw_hunks */ 400 /* add the free shadow raw hunk to p->free_raw_hunks */
398 401
399 if (cl->hunk->type & NGX_HUNK_LAST_SHADOW) { 402 if (cl->hunk->type & NGX_HUNK_LAST_SHADOW) {
400 h = cl->hunk->shadow; 403 h = cl->hunk->shadow;
401 h->pos = h->last = h->start; 404 h->pos = h->last = h->start;