MEDIUM: proxy: add mode PR_MODE_PEERS to flag peers frontends

For now we cannot easily distinguish a peers frontend from another one,
which will be problematic to avoid reporting them when stopping their
listeners. Let's add PR_MODE_PEERS for this. It's not supposed to cause
any issue since all non-HTTP proxies are handled similarly now.
This commit is contained in:
Willy Tarreau 2020-10-07 17:49:42 +02:00
parent 322b9b94e9
commit a389c9e1e3
3 changed files with 4 additions and 1 deletions

View file

@ -49,6 +49,7 @@ enum pr_mode {
PR_MODE_HEALTH,
PR_MODE_CLI,
PR_MODE_SYSLOG,
PR_MODE_PEERS,
PR_MODES
} __attribute__((packed));

View file

@ -2355,9 +2355,10 @@ int check_config_validity()
cfgerr += proxy_cfg_ensure_no_http(curproxy);
break;
case PR_MODE_SYSLOG:
case PR_MODE_PEERS:
case PR_MODES:
/* should not happen, bug gcc warn missing switch statement */
ha_alert("config : %s '%s' cannot use syslog mode for this proxy.\n",
ha_alert("config : %s '%s' cannot use peers or syslog mode for this proxy. NOTE: PLEASE REPORT THIS TO DEVELOPERS AS YOU'RE NOT SUPPOSED TO BE ABLE TO CREATE A CONFIGURATION TRIGGERING THIS!\n",
proxy_type_str(curproxy), curproxy->id);
cfgerr++;
break;

View file

@ -2521,6 +2521,7 @@ void peers_setup_frontend(struct proxy *fe)
{
fe->last_change = now.tv_sec;
fe->cap = PR_CAP_FE | PR_CAP_BE;
fe->mode = PR_MODE_PEERS;
fe->maxconn = 0;
fe->conn_retries = CONN_RETRIES;
fe->timeout.client = MS_TO_TICKS(5000);