[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.
This commit is contained in:
Willy Tarreau 2009-03-01 08:27:21 +01:00
parent 7b92db4cd5
commit 368480cf45

View File

@ -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;