MEDIUM: mux-h2: Block client data on server side waiting tunnel establishment
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 22 Jan 2021 10:59:07 +0000 (11:59 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 28 Jan 2021 15:37:14 +0000 (16:37 +0100)
commitf95f87650f5154382fe9c23b80d74175459e7726
tree5d262b1753d242d38863584f4854ab1448ff4dbb
parentd0db42326dec2e4ec906e84cb4c6d7a525eb805f
MEDIUM: mux-h2: Block client data on server side waiting tunnel establishment

On the server side, when a tunnel is not fully established, we must block
tunneled data, waiting for the server response. It is mandatory because the
server may refuse the tunnel. This happens when a DATA htx block is
processed in tunnel mode (H2_SF_BODY_TUNNEL flag set) but before the
response HEADERS frame is received (H2_SF_HEADERS_RCVD flag no set). In this
case, the H2_SF_BLK_MBUSY flag is set to mark the stream as busy. This flag
is removed when the tunnel is fully established or aborted.

This patch contributes to fix the tunnel mode between the H1 and the H2
muxes.
src/mux_h2.c