From: Willy Tarreau Date: Fri, 10 Mar 2017 10:49:21 +0000 (+0100) Subject: MINOR: config: warn when some HTTP rules are used in a TCP proxy X-Git-Tag: v1.8-dev1~100 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de7dc88c517e22d3ae02ce8a8a23046ab2c62238;p=thirdparty%2Fhaproxy.git MINOR: config: warn when some HTTP rules are used in a TCP proxy Surprizingly, http-request, http-response, block, redirect, and capture rules did not cause a warning to be emitted when used in a TCP proxy, so let's fix this. This patch may be backported to older versions as it helps spotting configuration issues. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index d4021c58b8..9d04f0284a 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -8500,6 +8500,36 @@ out_uri_auth_compat: curproxy->uri_auth = NULL; } + if (curproxy->capture_name) { + Warning("config : 'capture' statement ignored for %s '%s' as it requires HTTP mode.\n", + proxy_type_str(curproxy), curproxy->id); + err_code |= ERR_WARN; + } + + if (!LIST_ISEMPTY(&curproxy->http_req_rules)) { + Warning("config : 'http-request' rules ignored for %s '%s' as they require HTTP mode.\n", + proxy_type_str(curproxy), curproxy->id); + err_code |= ERR_WARN; + } + + if (!LIST_ISEMPTY(&curproxy->http_res_rules)) { + Warning("config : 'http-response' rules ignored for %s '%s' as they require HTTP mode.\n", + proxy_type_str(curproxy), curproxy->id); + err_code |= ERR_WARN; + } + + if (!LIST_ISEMPTY(&curproxy->block_rules)) { + Warning("config : 'block' rules ignored for %s '%s' as they require HTTP mode.\n", + proxy_type_str(curproxy), curproxy->id); + err_code |= ERR_WARN; + } + + if (!LIST_ISEMPTY(&curproxy->redirect_rules)) { + Warning("config : 'redirect' rules ignored for %s '%s' as they require HTTP mode.\n", + proxy_type_str(curproxy), curproxy->id); + err_code |= ERR_WARN; + } + if (curproxy->options & (PR_O_FWDFOR | PR_O_FF_ALWAYS)) { Warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n", "forwardfor", proxy_type_str(curproxy), curproxy->id);