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;
     }