mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-01 17:10:42 +00:00
MEDIUM: cfgparse: detect collisions between defaults and log-forward
Sadly, when log-forward were introduced they took great care of avoiding collision with regular proxies but defaults were missed (they need to be explicitly checked for). So now we have to move them to a warning for 3.1 instead of rejecting them.
This commit is contained in:
parent
d8f4b07e40
commit
1a38684fbc
@ -318,6 +318,19 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
||||
curproxy->id, curproxy->conf.file, curproxy->conf.line);
|
||||
err_code |= ERR_WARN;
|
||||
}
|
||||
else if (rc & PR_CAP_DEF) {
|
||||
/* only defaults need to be checked here, other proxies
|
||||
* have already been above.
|
||||
*/
|
||||
curproxy = log_forward_by_name(args[1]);
|
||||
if (curproxy) {
|
||||
ha_warning("Parsing [%s:%d]: %s '%s' has the same name as log-forward section '%s' declared at %s:%d."
|
||||
" This is dangerous and will not be supported anymore in version 3.3.\n",
|
||||
file, linenum, proxy_cap_str(rc), args[1],
|
||||
curproxy->id, curproxy->conf.file, curproxy->conf.line);
|
||||
err_code |= ERR_WARN;
|
||||
}
|
||||
}
|
||||
|
||||
if (rc & PR_CAP_DEF && strcmp(args[1], "from") == 0 && *args[2] && !*args[3]) {
|
||||
// also support "defaults from blah" (no name then)
|
||||
|
10
src/log.c
10
src/log.c
@ -5867,6 +5867,16 @@ int cfg_parse_log_forward(const char *file, int linenum, char **args, int kwm)
|
||||
goto out;
|
||||
}
|
||||
|
||||
px = proxy_find_by_name(args[1], PR_CAP_DEF, 0);
|
||||
if (px) {
|
||||
/* collision with a "defaults" section */
|
||||
ha_warning("Parsing [%s:%d]: log-forward section '%s' has the same name as %s '%s' declared at %s:%d."
|
||||
" This is dangerous and will not be supported anymore in version 3.3.\n",
|
||||
file, linenum, args[1], proxy_type_str(px),
|
||||
px->id, px->conf.file, px->conf.line);
|
||||
err_code |= ERR_WARN;
|
||||
}
|
||||
|
||||
px = calloc(1, sizeof *px);
|
||||
if (!px) {
|
||||
err_code |= ERR_ALERT | ERR_FATAL;
|
||||
|
Loading…
Reference in New Issue
Block a user