[MINOR] config: support a comma-separated list of store data types in stick-table

Sometimes we need to store many data types in stick-tables. Let's support a
comma-separated list instead of repeating "store" with each keyword.
This commit is contained in:
Willy Tarreau 2010-06-19 07:12:36 +02:00
parent f4d17d9071
commit b084e9ccb9

View File

@ -2276,19 +2276,29 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
} }
else if (strcmp(args[myidx], "store") == 0) { else if (strcmp(args[myidx], "store") == 0) {
int type; int type;
char *cw, *nw;
myidx++; myidx++;
type = stktable_get_data_type(args[myidx]); nw = args[myidx];
if (type < 0) { while (*nw) {
Alert("parsing [%s:%d] : %s: unknown store option '%s'.\n", /* the "store" keyword supports a comma-separated list */
file, linenum, args[0], args[myidx]); cw = nw;
err_code |= ERR_ALERT | ERR_FATAL; while (*nw && *nw != ',')
goto out; nw++;
} if (*nw)
if (!stktable_alloc_data_type(&curproxy->table, type)) { *nw++ = '\0';
Warning("parsing [%s:%d]: %s: store option '%s' already enabled, ignored.\n", type = stktable_get_data_type(cw);
file, linenum, args[0], args[myidx]); if (type < 0) {
err_code |= ERR_WARN; Alert("parsing [%s:%d] : %s: unknown store option '%s'.\n",
file, linenum, args[0], cw);
err_code |= ERR_ALERT | ERR_FATAL;
goto out;
}
if (!stktable_alloc_data_type(&curproxy->table, type)) {
Warning("parsing [%s:%d]: %s: store option '%s' already enabled, ignored.\n",
file, linenum, args[0], cw);
err_code |= ERR_WARN;
}
} }
myidx++; myidx++;
} }