From: Aurelien DARRAGON Date: Fri, 27 Jun 2025 10:03:30 +0000 (+0200) Subject: MINOR: server: move send-proxy* incompatibility check in _srv_check_proxy_mode() X-Git-Tag: v3.3-dev3~77 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c7c6d8d2952c43af10b511bbb2b2aa790412f0d8;p=thirdparty%2Fhaproxy.git MINOR: server: move send-proxy* incompatibility check in _srv_check_proxy_mode() This way the check is executed no matter the section where the server is declared (ie: not only under the "ring" section) --- diff --git a/src/server.c b/src/server.c index cfb2db3df..cddfac0cf 100644 --- a/src/server.c +++ b/src/server.c @@ -3398,6 +3398,14 @@ static int _srv_check_proxy_mode(struct server *srv, char postparse) err_code |= ERR_ALERT | ERR_FATAL; } } + + if (srv->proxy->mode != PR_MODE_TCP && srv->proxy->mode != PR_MODE_HTTP && + srv->pp_opts) { + srv->pp_opts = 0; + ha_warning("'send-proxy*' server option is unsupported there, ignoring it\n"); + err_code |= ERR_WARN; + } + out: if (srv->conf.file) reset_usermsgs_ctx(); diff --git a/src/sink.c b/src/sink.c index 73924ec7c..eef10006d 100644 --- a/src/sink.c +++ b/src/sink.c @@ -1092,16 +1092,6 @@ int cfg_parse_ring(const char *file, int linenum, char **args, int kwm) if (err_code & ERR_CODE) goto err; - - /* FIXME: ideally this check should be performed during server postparsing - * for all proxies where this option is unsupported, but for now we lack - * server postparsing rules for sinks so let's put that here - */ - if (cfg_sink->forward_px->srv && cfg_sink->forward_px->srv->pp_opts) { - cfg_sink->forward_px->srv->pp_opts = 0; - ha_warning("parsing [%s:%d] : 'send-proxy*' server option is unsupported there, ignoring it\n", file, linenum); - err_code |= ERR_WARN; - } } else if (strcmp(args[0],"timeout") == 0) { if (!cfg_sink || !cfg_sink->forward_px) {