BUG/MINOR: connection: Fix fc_http_major and bc_http_major for TCP connections
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 14 Apr 2021 13:40:30 +0000 (15:40 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 21 Apr 2021 08:13:37 +0000 (10:13 +0200)
commit5dfe7dccd4b4051256e30d4652a6b889e73e2239
tree63d94ee475f279fe4c310e822f5837371764fb68
parent7ebe7f32d13b7794949e8757d330897aa1e044c9
BUG/MINOR: connection: Fix fc_http_major and bc_http_major for TCP connections

fc_http_major and bc_http_major sample fetches return the major digit of the
HTTP version used, respectively, by the frontend and the backend
connections, based on the mux. However, in reality, "2" is returned if the
H2 mux is detected, otherwise "1" is inconditionally returned, regardless
the mux used. Thus, if called for a raw TCP connection, "1" is returned.

To fix this bug, we now get the multiplexer flags, if there is one, to be
sure MX_FL_HTX is set.

I guess it was made this way on purpose when the H2 multiplexer was
introduced in the 1.8 and with the legacy HTTP mode there is no other
solution at the connection level. Thus this patch should be backported as
far as 2.2. For the 2.0, it must be evaluated first because of the legacy
HTTP mode.

(cherry picked from commit f4dd9ae5c7ca65cd5c2652343e4af5ca7a97ab32)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
src/connection.c