From: Aurelien DARRAGON Date: Tue, 19 Sep 2023 15:20:24 +0000 (+0200) Subject: MINOR: stktable: "stick" requires TCP or HTTP mode X-Git-Tag: v2.9-dev7~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=098ae743fd17b3fae6671e53d9bdb74eb3f315fd;p=thirdparty%2Fhaproxy.git MINOR: stktable: "stick" requires TCP or HTTP mode Prevent the use of "stick-table" and "stick *" when proxy is neither in tcp or http mode. --- diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c index 292f1626e4..78ccd98a9a 100644 --- a/src/cfgparse-listen.c +++ b/src/cfgparse-listen.c @@ -1527,6 +1527,13 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) goto out; } + if (curproxy->mode != PR_MODE_TCP && curproxy->mode != PR_MODE_HTTP) { + ha_alert("parsing [%s:%d] : 'stick-table' requires TCP or HTTP mode.\n", + file, linenum); + err_code |= ERR_ALERT | ERR_FATAL; + goto out; + } + other = stktable_find_by_name(curproxy->id); if (other) { ha_alert("parsing [%s:%d] : stick-table name '%s' conflicts with table declared in %s '%s' at %s:%d.\n", @@ -1579,6 +1586,13 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) goto out; } + if (curproxy->mode != PR_MODE_TCP && curproxy->mode != PR_MODE_HTTP) { + ha_alert("parsing [%s:%d] : '%s' requires TCP or HTTP mode.\n", + file, linenum, args[0]); + err_code |= ERR_ALERT | ERR_FATAL; + goto out; + } + if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[0], NULL)) { err_code |= ERR_WARN; goto out;