mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-02-10 03:41:24 +01:00
BUG/MINOR: config: fix stick table duplicate name check
When a stick-table is defined within a peers section, the name is prefixed with the peers section name. However when checking for duplicate table names, the check was using the table name without the prefix, and would thus never match. Must be backported as far as 2.6.
This commit is contained in:
parent
593c895eed
commit
bce0ca696c
@ -1016,17 +1016,6 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
|
||||
goto out;
|
||||
}
|
||||
|
||||
other = stktable_find_by_name(args[1]);
|
||||
if (other) {
|
||||
ha_alert("parsing [%s:%d] : stick-table name '%s' conflicts with table declared in %s '%s' at %s:%d.\n",
|
||||
file, linenum, args[1],
|
||||
other->proxy ? proxy_cap_str(other->proxy->cap) : "peers",
|
||||
other->proxy ? other->id : other->peers.p->id,
|
||||
other->conf.file, other->conf.line);
|
||||
err_code |= ERR_ALERT | ERR_FATAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Build the stick-table name, concatenating the "peers" section name
|
||||
* followed by a '/' character and the table name argument.
|
||||
*/
|
||||
@ -1057,6 +1046,18 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
|
||||
goto out;
|
||||
}
|
||||
|
||||
other = stktable_find_by_name(trash.area);
|
||||
if (other) {
|
||||
ha_alert("parsing [%s:%d] : stick-table name '%s' conflicts with table declared in %s '%s' at %s:%d.\n",
|
||||
file, linenum, args[1],
|
||||
other->proxy ? proxy_cap_str(other->proxy->cap) : "peers",
|
||||
other->proxy ? other->id : other->peers.p->id,
|
||||
other->conf.file, other->conf.line);
|
||||
err_code |= ERR_ALERT | ERR_FATAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
err_code |= parse_stick_table(file, linenum, args, t, id, id + prefix_len, curpeers);
|
||||
if (err_code & ERR_FATAL) {
|
||||
free(t);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user