BUG/MINOR: h1-htx: Remove flags about protocol upgrade on non-101 responses
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 10 Jan 2023 17:51:55 +0000 (18:51 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 11 Jan 2023 09:31:28 +0000 (10:31 +0100)
commit5f36bfe42e6fe1daa764c38a8ba158b710e52530
treea4d0176209f13e04a77a22d4c7f319141a54fd34
parenta9de7ea1dc3bbc627ae3ab82de9e012d10ed7ffb
BUG/MINOR: h1-htx: Remove flags about protocol upgrade on non-101 responses

It is possible to have an "upgrade:" header and the corresponding value in
the "connection:" header for a non-101 response. It happens for
426-Upgrade-Required messages. However, on HAProxy side, a parsing error is
reported for this kind of message because no websocket key header
("sec-websocket-accept:") is found in the response.

So a possible fix could be to not perform this test for non-101
responses. However, having flags about protocol upgrade on this kind of
response could lead to other bugs. Instead, corresponding flags are
removed. Thus, during the H1 response post-parsing, H1_MF_CONN_UPG and
H1_MF_UPG_WEBSOCKET flags are removed from any non-101 response.

This patch should fix the issue #1997. It must be backported as far as 2.4.
src/h1_htx.c