From: Willy Tarreau Date: Sun, 1 Mar 2009 07:27:21 +0000 (+0100) Subject: [BUG] the "source" keyword must first clear optional settings X-Git-Tag: v1.3.16-rc1~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=368480cf4570a0d6448741c704aebd53ac467aa9;p=thirdparty%2Fhaproxy.git [BUG] the "source" keyword must first clear optional settings Problem reported by John Lauro. When "source ... usesrc ..." is set in the defaults section, it is not possible anymore to remove the "usesrc" part when declaring a more precise "source" in a backend. The only workaround was to declare it by server. We need to clear optional settings when declaring a new "source". The problem was the same with the "interface" declaration. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index e427a6ffdf..5f1f0bb53b 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -2199,7 +2199,13 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int inv) file, linenum, "source", "usesrc", "interface"); return -1; } - + + /* we must first clear any optional default setting */ + curproxy->options &= ~PR_O_TPXY_MASK; + free(curproxy->iface_name); + curproxy->iface_name = NULL; + curproxy->iface_len = 0; + curproxy->source_addr = *str2sa(args[1]); curproxy->options |= PR_O_BIND_SRC;