]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: channel/htx: Use the total HTX size in channel_htx_recv_limit()
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 2 Jul 2019 13:48:03 +0000 (15:48 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 2 Jul 2019 19:32:45 +0000 (21:32 +0200)
commit621da6bafaffc4a0182fb46cfa4b0153c83469e7
tree22bf947819cdf885cee4ea73c859a72575be1895
parent7e145b3e240b6c018016b217f0348a255ffda292
BUG/MEDIUM: channel/htx: Use the total HTX size in channel_htx_recv_limit()

The receive limit of an HTX channel must be calculated against the total size of
the HTX message. Otherwise, the buffer may never be seen as full whereas the
receive limit is 0. Indeed, the function channel_htx_full() already takes care
to add a block size to the buffer's reserve (8 bytes). So if the function
channel_htx_recv_limit() also keep a block size free in addition to the buffer's
reserve, it means that at least 2 block size will be kept free but only one will
be taken into account, freezing the stream if the option http-buffer-request is
enabled.

This patch fixes the Github issue #136. It should be backported to 2.0 and
1.9. Thanks jaroslawr (Jarosław Rzeszótko) for his help.
include/common/htx.h
include/proto/channel.h