]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: checks: Support HTTP/2 version (without '.0') for http-check send rules
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 28 Apr 2020 07:10:19 +0000 (09:10 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 28 Apr 2020 07:24:49 +0000 (09:24 +0200)
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.

src/checks.c

index 36aa71883c8e368bf77301450f631f151b4ec8e3..0b934b663708294c528fc4d7c14591678594ca31 100644 (file)
@@ -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))