BUG/MINOR: listener: Allow multiple "process" options on "bind" lines

The documentation specifies that you can have several "process" options to
define several ranges on "bind" lines (or "stats socket" lines). It is uncommon,
but it should be possible. So the bind_proc bitmask in bind_conf structure must
not be overwritten at each new "process" option parsed.

This bug also exists in 1.7, 1.6 and 1.5. So it may be backported. But no one
seems to have noticed it, so it was probably never hitted.
This commit is contained in:
Christopher Faulet 2017-11-23 22:23:08 +01:00 committed by Willy Tarreau
parent ecb73b12c1
commit 15eb3a9a08

View File

@ -944,7 +944,7 @@ static int bind_parse_process(char **args, int cur_arg, struct proxy *px, struct
unsigned int low, high;
if (strcmp(args[cur_arg + 1], "all") == 0) {
set = 0;
set |= ~0UL;
}
else if (strcmp(args[cur_arg + 1], "odd") == 0) {
set |= ~0UL/3UL; /* 0x555....555 */
@ -977,7 +977,7 @@ static int bind_parse_process(char **args, int cur_arg, struct proxy *px, struct
return ERR_ALERT | ERR_FATAL;
}
conf->bind_proc = set;
conf->bind_proc |= set;
return 0;
}