621da6bafa
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. |
||
---|---|---|
.. | ||
accept4.h | ||
base64.h | ||
buf.h | ||
buffer.h | ||
cfgparse.h | ||
chunk.h | ||
compat.h | ||
compiler.h | ||
config.h | ||
debug.h | ||
defaults.h | ||
epoll.h | ||
errors.h | ||
h1.h | ||
h2.h | ||
hash.h | ||
hathreads.h | ||
hpack-dec.h | ||
hpack-enc.h | ||
hpack-huff.h | ||
hpack-tbl.h | ||
http-hdr.h | ||
http.h | ||
htx.h | ||
initcall.h | ||
ist.h | ||
istbuf.h | ||
memory.h | ||
mini-clist.h | ||
namespace.h | ||
net_helper.h | ||
openssl-compat.h | ||
regex.h | ||
splice.h | ||
standard.h | ||
syscall.h | ||
template.h | ||
ticks.h | ||
time.h | ||
tools.h | ||
uri_auth.h | ||
version.h | ||
xref.h |