Output body buffer chain "flattening" doesn't work unless proxy buffering is off

Srebrenko Šehić ssehic at gmail.com
Tue Jun 8 00:59:31 MSD 2010


On Mon, Jun 7, 2010 at 10:41 PM, Srebrenko Šehić <ssehic at gmail.com> wrote:

>> b->pos = b->last;
>
> I guess that should be done after the call to
> ngx_http_next_body_filter(r, in). I tried that, but it did not make
> any difference. It still "hangs" for payloads larger than 32KB.

I managed to figure it out myself. I set the b->pos = b->end during my
"traverse the chain and copy all buffers into one" for each buffer
that I copy. I just assumed that "old buffers" will be thrown away by
nginx as soon as I changed the input chain to the new buffer leaving
the old buffer dangling.

Anyways, thanks for the pointer Maxim. Highly appreciated.

Best regards,
Srebrenko



More information about the nginx-devel mailing list