diff src/event/ngx_event_pipe.c @ 2592:3a8a53c0c42f

a prelimiary proxy cache support
author Igor Sysoev <igor@sysoev.ru>
date Mon, 23 Mar 2009 13:14:51 +0000
parents 722b5aff05ae
children 90422d071d3f
line wrap: on
line diff
--- a/src/event/ngx_event_pipe.c
+++ b/src/event/ngx_event_pipe.c
@@ -423,7 +423,7 @@ ngx_event_pipe_write_to_downstream(ngx_e
     size_t             bsize;
     ngx_int_t          rc;
     ngx_uint_t         flush, prev_last_shadow;
-    ngx_chain_t       *out, **ll, *cl;
+    ngx_chain_t       *out, **ll, *cl, file;
     ngx_connection_t  *downstream;
 
     downstream = p->downstream;
@@ -488,6 +488,18 @@ ngx_event_pipe_write_to_downstream(ngx_e
                 p->in = NULL;
             }
 
+            if (p->cacheable && p->buf_to_file) {
+
+                file.buf = p->buf_to_file;
+                file.next = NULL;
+
+                if (ngx_write_chain_to_temp_file(p->temp_file, &file)
+                    == NGX_ERROR)
+                {
+                    return NGX_ABORT;
+                }
+            }
+
             ngx_log_debug0(NGX_LOG_DEBUG_EVENT, p->log, 0,
                            "pipe write downstream done");