mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-01 02:52:00 +00:00
BUG/MEDIUM: checks: Use the mux protocol specified on the server line
First, when a server health check is initialized, it inherits the mux protocol from the server if it is not already specified. Because there is no option to specify the mux protocol for the checks, it is always inherited from the server for now. Then, if the connect rule is configured to use the server options, the mux protocol of the check is used, if defined. Of course, if a mux protocol is already defined for the connect rule, it is used in priority. But for now, it is not possible. Thus, if a server is configured to use, for instance, the h2 protocol, it is possible to do the same for the health-checks. No backport needed.
This commit is contained in:
parent
c52ea4d9cd
commit
12882cfaf8
11
src/checks.c
11
src/checks.c
@ -1743,12 +1743,13 @@ static enum tcpcheck_eval_ret tcpcheck_eval_connect(struct check *check, struct
|
||||
* check (email alerts) or if there is a mux proto specified or if there
|
||||
* is no alpn.
|
||||
*/
|
||||
if (!s || connect->mux_proto || check->mux_proto || (!connect->alpn && !check->alpn_str)) {
|
||||
if (!s || ((connect->options & TCPCHK_OPT_DEFAULT_CONNECT) && check->mux_proto) ||
|
||||
connect->mux_proto || (!connect->alpn && !check->alpn_str)) {
|
||||
const struct mux_ops *mux_ops;
|
||||
|
||||
if (connect->mux_proto)
|
||||
mux_ops = connect->mux_proto->mux;
|
||||
else if (check->mux_proto)
|
||||
else if ((connect->options & TCPCHK_OPT_DEFAULT_CONNECT) && check->mux_proto)
|
||||
mux_ops = check->mux_proto->mux;
|
||||
else {
|
||||
int mode = ((check->tcpcheck_rules->flags & TCPCHK_RULES_PROTO_CHK) == TCPCHK_RULES_HTTP_CHK
|
||||
@ -4724,6 +4725,12 @@ static int init_srv_check(struct server *srv)
|
||||
srv->check.send_proxy |= (srv->pp_opts);
|
||||
}
|
||||
|
||||
/* Inherit the mux protocol from the server if not already defined for
|
||||
* the check
|
||||
*/
|
||||
if (srv->mux_proto && !srv->check.mux_proto)
|
||||
srv->check.mux_proto = srv->mux_proto;
|
||||
|
||||
/* validate <srv> server health-check settings */
|
||||
|
||||
/* We need at least a service port, a check port or the first tcp-check
|
||||
|
Loading…
Reference in New Issue
Block a user