From: Christopher Faulet Date: Tue, 28 Apr 2020 07:10:19 +0000 (+0200) Subject: MINOR: checks: Support HTTP/2 version (without '.0') for http-check send rules X-Git-Tag: v2.2-dev7~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8bf8fda49b953e8e9f978e596a1a9a3eb07fc97c;p=thirdparty%2Fhaproxy.git MINOR: checks: Support HTTP/2 version (without '.0') for http-check send rules The version is partially parsed to set the flag HTX_SL_F_VER_11 on the HTX message. But exactly 8 chars is expected. So if "HTTP/2" is specified, the flag is not set. Thus, the version parsing has been updated to handle "HTTP/2" and "HTTP/2.0" the same way. --- diff --git a/src/checks.c b/src/checks.c index 36aa71883c..0b934b6637 100644 --- a/src/checks.c +++ b/src/checks.c @@ -1916,8 +1916,8 @@ static enum tcpcheck_eval_ret tcpcheck_eval_send(struct check *check, struct tcp uri = (isttest(send->http.uri) ? send->http.uri : ist("/")); // TODO: handle uri_fmt vsn = (isttest(send->http.vsn) ? send->http.vsn : ist("HTTP/1.0")); - if (istlen(vsn) == 8 && - (*(vsn.ptr+5) > '1' || (*(vsn.ptr+5) == '1' && *(vsn.ptr+7) >= '1'))) + if ((istlen(vsn) == 6 && *(vsn.ptr+5) == '2') || + (istlen(vsn) == 8 && (*(vsn.ptr+5) > '1' || (*(vsn.ptr+5) == '1' && *(vsn.ptr+7) >= '1')))) slflags |= HTX_SL_F_VER_11; slflags |= (HTX_SL_F_XFER_LEN|HTX_SL_F_CLEN); if (!isttest(send->http.body))