Mercurial > hg > nginx
diff src/event/ngx_event_pipe.c @ 187:5a9bbe99008b
nginx-0.0.1-2003-11-17-19:15:03 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 17 Nov 2003 16:15:03 +0000 |
parents | c1f3a3c7c5db |
children | 0061d1f0908d |
line wrap: on
line diff
--- a/src/event/ngx_event_pipe.c +++ b/src/event/ngx_event_pipe.c @@ -451,26 +451,22 @@ int ngx_event_pipe_write_to_downstream(n static int ngx_event_pipe_write_chain_to_temp_file(ngx_event_pipe_t *p) { int size, hsize; - char *save_pos; ngx_hunk_t *h; - ngx_chain_t *cl, *tl, *next, *out, **ll, **last_free; - - ngx_log_debug(p->log, "write to file"); + ngx_chain_t *cl, *tl, *next, *out, **ll, **last_free, fl; - out = p->in; - - if (out->hunk->type & NGX_HUNK_PREREAD) { - save_pos = out->hunk->pos; - out->hunk->pos = out->hunk->start; + if (p->hunk_to_file) { + fl.hunk = p->hunk_to_file; + fl.next = p->in; + out = &fl; } else { - save_pos = NULL; + out = p->in; } if (!p->cachable) { size = 0; - cl = p->in; + cl = out; ll = NULL; ngx_log_debug(p->log, "offset: %d" _ p->temp_file->offset); @@ -519,10 +515,10 @@ ngx_log_debug(p->log, "size: %d" _ size) /* void */ } - if (out->hunk->type & NGX_HUNK_PREREAD) { - p->temp_file->offset += save_pos - out->hunk->pos; - out->hunk->pos = save_pos; - out->hunk->type &= ~NGX_HUNK_PREREAD; + if (p->hunk_to_file) { + p->temp_file->offset = p->hunk_to_file->last - p->hunk_to_file->pos; + p->hunk_to_file = NULL; + out = out->next; } for (cl = out; cl; cl = next) { @@ -566,8 +562,6 @@ int ngx_event_pipe_copy_input_filter(ngx ngx_hunk_t *h; ngx_chain_t *cl; -ngx_log_debug(p->log, "COPY"); - if (hunk->pos == hunk->last) { return NGX_OK; }