Fix enum parameter checks
The enums weren't properly parsed when they were checked.
This commit is contained in:
@ -3164,14 +3164,26 @@ bool config_param_is_valid(const MXS_MODULE_PARAM *params, const char *key,
|
||||
case MXS_MODULE_PARAM_ENUM:
|
||||
if (params[i].accepted_values)
|
||||
{
|
||||
char *endptr;
|
||||
const char *delim = ", \t";
|
||||
char buf[strlen(value) + 1];
|
||||
strcpy(buf, value);
|
||||
char *tok = strtok_r(buf, delim, &endptr);
|
||||
|
||||
while (tok)
|
||||
{
|
||||
valid = false;
|
||||
|
||||
for (int j = 0; params[i].accepted_values[j].name; j++)
|
||||
{
|
||||
if (strcmp(params[i].accepted_values[j].name, value) == 0)
|
||||
if (strcmp(params[i].accepted_values[j].name, tok) == 0)
|
||||
{
|
||||
valid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
tok = strtok_r(NULL, delim, &endptr);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user