Question about ngx_chain_writer
mdounin at mdounin.ru
Thu Jun 6 18:09:39 UTC 2019
On Thu, Jun 06, 2019 at 01:06:38PM +0000, Eran Kornblau wrote:
> Hi all,
> Looking at ngx_chain_writer, there's something that looks a bit off to me, this line seems redundant -
> The first loop in the function adds the input chain (in) to the end of ctx->out.
> The second loop in the function calculates the total size of ctx->out, so it will add the size of the 'in' buffers again.
> I verified in gdb that size is indeed x2 the size of the chain.
> This isn't causing any problem since size is only compared to zero, but seems a bit confusing...
> It may have been better to leave the 'size += ngx_buf_size(in->buf);' but reverse the order of the 2 loops,
> so that the input buffers will be validated only once.
> Does this make sense or did I get something wrong?
Yes, ngx_chain_writer() function was written to work with very few
buffers, and isn't optimal. A better though similar code can be
seen in ngx_http_write_filter().
More information about the nginx-devel