]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: mux-h2: Add EOT block when EOM flag is set on an empty HTX message
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 10 Feb 2021 08:04:59 +0000 (09:04 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 10 Feb 2021 15:25:42 +0000 (16:25 +0100)
commit337243235ffc0ec46fb6975ea6eb2e9dd2dfd0a3
tree7097af8d8f59758e1987f0f708f88a470cc3241d
parent0a916d2aca79bc6bbb38cc5ebcc1bb51de614b7c
BUG/MEDIUM: mux-h2: Add EOT block when EOM flag is set on an empty HTX message

In the H2 mux, when a empty DATA frame is used to finish a message, just to
set the ES flag, we now only set the EOM flag on the HTX message. However,
if the HTX message is empty, this event will not be properly handled on the
other side because there is no effective data to handle. Thus, it is
interpreted as an abort by the H1 mux.

It is in part caused by the current H1 mux design but also because there is
no way to emit empty HTX block (NOOP HTX block) or to wakeup a mux for send
when there is no data to finish some internal processing.

Thus, for now, to work around this limitation, an EOT HTX block is added by
the H2 mux if a EOM flag is added on an empty HTX message. This case is only
possible when an empty DATA frame with the ES flag is received.

This fix is specific for 2.4. No backport needed.
src/mux_h2.c