]> git.kaiwu.me - nginx.git/commitdiff
nginx-0.0.1-2004-01-26-20:22:04 import
authorIgor Sysoev <igor@sysoev.ru>
Mon, 26 Jan 2004 17:22:04 +0000 (17:22 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 26 Jan 2004 17:22:04 +0000 (17:22 +0000)
src/http/modules/ngx_http_ssi_filter.c

index 78bf608261610545dd678b4a7937d3c79445f811..13c11f0cec394698d85201f609b0349a53a3a56c 100644 (file)
@@ -194,10 +194,6 @@ static int ngx_http_ssi_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
                     ctx->prev = 0;
                 }
 
-                if (ctx->pos == ctx->buf->last) {
-                    ctx->prev = ctx->buf->last - ctx->last;
-                }
-
                 if (!(hunk = ngx_calloc_hunk(r->pool))) {
                     return NGX_ERROR;
                 }
@@ -212,6 +208,10 @@ static int ngx_http_ssi_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
                 *ctx->last_out = cl;
                 ctx->last_out = &cl->next;
 
+                if (ctx->pos == ctx->buf->last) {
+                    ctx->prev = ctx->buf->last - ctx->last;
+                }
+
                 continue;
 
 #if 0
@@ -236,6 +236,8 @@ static int ngx_http_ssi_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
                 ctx->last_out = &cl->next;
             }
         }
+
+        ctx->buf = NULL;
     }
 
     if (ctx->out) {
@@ -256,6 +258,7 @@ static int ngx_http_ssi_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
         }
     
         ctx->out = NULL;
+        ctx->last_out = &ctx->out;
 
         while (ctx->busy) {
             if (ngx_hunk_size(ctx->busy->hunk) != 0) {