changeset 1040:d536a2332385

fix FastCGI "zero size buf" alert, the previous commit did not fix too
author Igor Sysoev <igor@sysoev.ru>
date Thu, 18 Jan 2007 07:07:55 +0000
parents 73f18b6ad6ba
children 6c8af39831e4
files src/event/ngx_event_pipe.c
diffstat 1 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event_pipe.c
+++ b/src/event/ngx_event_pipe.c
@@ -518,19 +518,12 @@ ngx_event_pipe_write_to_downstream(ngx_e
                 cl = p->out;
 
                 if (cl->buf->recycled
-                    && cl->buf->last_shadow
                     && bsize + cl->buf->last - cl->buf->pos > p->busy_size)
                 {
-                    if (!prev_last_shadow) {
-                        p->in = p->in->next;
-                    }
-
                     flush = 1;
                     break;
                 }
 
-                prev_last_shadow = cl->buf->last_shadow;
-
                 p->out = p->out->next;
 
                 ngx_event_pipe_free_shadow_raw_buf(&p->free_raw_bufs, cl->buf);
@@ -550,6 +543,15 @@ ngx_event_pipe_write_to_downstream(ngx_e
                 {
                     if (!prev_last_shadow) {
                         p->in = p->in->next;
+
+                        cl->next = NULL;
+
+                        if (out) {
+                            *ll = cl;
+                        } else {
+                            out = cl;
+                        }
+                        ll = &cl->next;
                     }
 
                     flush = 1;