mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-02 03:23:12 +00:00
BUG/MINOR: tcpcheck: Don't forget to reset tcp-check flags on new kind of check
When a new kind of check is found during the parsing of a proxy section (via an option directive), we must reset tcpcheck flags for this proxy. It is mandatory to not inherit some flags from a previously declared check (for instance in the default section). This patch must be backported as far as 2.2.
This commit is contained in:
parent
5a7d6ebf2c
commit
1faf18ae39
12
src/check.c
12
src/check.c
@ -1598,8 +1598,8 @@ int proxy_parse_tcp_check_opt(char **args, int cur_arg, struct proxy *curpx, str
|
|||||||
ruleset_found:
|
ruleset_found:
|
||||||
free_tcpcheck_vars(&rules->preset_vars);
|
free_tcpcheck_vars(&rules->preset_vars);
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_TCP_CHK;
|
rules->flags |= TCPCHK_RULES_TCP_CHK;
|
||||||
rules->flags &= ~TCPCHK_RULES_UNUSED_TCP_RS;
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return err_code;
|
return err_code;
|
||||||
@ -1669,6 +1669,7 @@ int proxy_parse_redis_check_opt(char **args, int cur_arg, struct proxy *curpx, s
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_REDIS_CHK;
|
rules->flags |= TCPCHK_RULES_REDIS_CHK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -1768,6 +1769,7 @@ int proxy_parse_ssl_hello_chk_opt(char **args, int cur_arg, struct proxy *curpx,
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_SSL3_CHK;
|
rules->flags |= TCPCHK_RULES_SSL3_CHK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -1905,6 +1907,7 @@ int proxy_parse_smtpchk_opt(char **args, int cur_arg, struct proxy *curpx, struc
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_SMTP_CHK;
|
rules->flags |= TCPCHK_RULES_SMTP_CHK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -2050,6 +2053,7 @@ int proxy_parse_pgsql_check_opt(char **args, int cur_arg, struct proxy *curpx, s
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_PGSQL_CHK;
|
rules->flags |= TCPCHK_RULES_PGSQL_CHK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -2273,6 +2277,7 @@ int proxy_parse_mysql_check_opt(char **args, int cur_arg, struct proxy *curpx, s
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_MYSQL_CHK;
|
rules->flags |= TCPCHK_RULES_MYSQL_CHK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -2356,6 +2361,7 @@ int proxy_parse_ldap_check_opt(char **args, int cur_arg, struct proxy *curpx, st
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_LDAP_CHK;
|
rules->flags |= TCPCHK_RULES_LDAP_CHK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -2431,6 +2437,7 @@ int proxy_parse_spop_check_opt(char **args, int cur_arg, struct proxy *curpx, st
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_SPOP_CHK;
|
rules->flags |= TCPCHK_RULES_SPOP_CHK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -2621,8 +2628,8 @@ int proxy_parse_httpchk_opt(char **args, int cur_arg, struct proxy *curpx, struc
|
|||||||
}
|
}
|
||||||
|
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_HTTP_CHK;
|
rules->flags |= TCPCHK_RULES_HTTP_CHK;
|
||||||
rules->flags &= ~TCPCHK_RULES_UNUSED_HTTP_RS;
|
|
||||||
if (!tcpcheck_add_http_rule(chk, rules, &errmsg)) {
|
if (!tcpcheck_add_http_rule(chk, rules, &errmsg)) {
|
||||||
ha_alert("parsing [%s:%d] : '%s %s' : %s.\n", file, line, args[0], args[1], errmsg);
|
ha_alert("parsing [%s:%d] : '%s %s' : %s.\n", file, line, args[0], args[1], errmsg);
|
||||||
rules->list = NULL;
|
rules->list = NULL;
|
||||||
@ -2752,6 +2759,7 @@ static int srv_parse_agent_check(char **args, int *cur_arg, struct proxy *curpx,
|
|||||||
|
|
||||||
ruleset_found:
|
ruleset_found:
|
||||||
rules->list = &rs->rules;
|
rules->list = &rs->rules;
|
||||||
|
rules->flags &= ~(TCPCHK_RULES_PROTO_CHK|TCPCHK_RULES_UNUSED_RS);
|
||||||
rules->flags |= TCPCHK_RULES_AGENT_CHK;
|
rules->flags |= TCPCHK_RULES_AGENT_CHK;
|
||||||
srv->do_agent = 1;
|
srv->do_agent = 1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user