diff src/core/ngx_output_chain.c @ 403:ea3113b181d1

nginx-0.0.9-2004-07-28-23:21:26 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 28 Jul 2004 19:21:26 +0000
parents f209f3391020
children d6e2b445c1b8
line wrap: on
line diff
--- a/src/core/ngx_output_chain.c
+++ b/src/core/ngx_output_chain.c
@@ -59,6 +59,17 @@ ngx_int_t ngx_output_chain(ngx_output_ch
              * or there are the free output bufs to copy in
              */
 
+            bsize = ngx_buf_size(ctx->in->buf);
+
+            if (bsize == 0 && !ngx_buf_special(ctx->in->buf)) {
+
+                ngx_log_error(NGX_LOG_ALERT, ctx->pool->log, 0,
+                              "zero size buf");
+
+                ctx->in = ctx->in->next;
+                continue;
+            }
+
             if (!ngx_output_chain_need_to_copy(ctx, ctx->in->buf)) {
 
                 /* move the chain link to the output chain */
@@ -73,13 +84,6 @@ ngx_int_t ngx_output_chain(ngx_output_ch
                 continue;
             }
 
-            bsize = ngx_buf_size(ctx->in->buf);
-
-            if (bsize == 0) {
-                ctx->in = ctx->in->next;
-                continue;
-            }
-
             if (ctx->buf == NULL) {
 
                 /* get the free buf */