Only warn about whitespace in section names

The warnings were logged even when the fix_section_name function was used
to fix non-section names.
This commit is contained in:
Markus Mäkelä
2018-07-11 16:16:11 +03:00
parent fa6bcefdb0
commit 5fdf82a508
4 changed files with 27 additions and 27 deletions

View File

@ -493,16 +493,7 @@ CONFIG_CONTEXT* config_context_create(const char *section)
/** A set that holds all the section names that contain whitespace */ /** A set that holds all the section names that contain whitespace */
static std::set<string> warned_whitespace; static std::set<string> warned_whitespace;
/** static void fix_section_name(char *section)
* @brief Fix section names
*
* Check that section names contain no whitespace. If the name contains
* whitespace, trim it, squeeze it and replace the remaining whitespace with
* hyphens. If a replacement was made, a warning is logged.
*
* @param section Section name
*/
void fix_section_name(char *section)
{ {
for (char* s = section; *s; s++) for (char* s = section; *s; s++)
{ {
@ -518,9 +509,14 @@ void fix_section_name(char *section)
} }
} }
squeeze_whitespace(section); fix_object_name(section);
trim(section); }
replace_whitespace(section);
void fix_object_name(char *name)
{
squeeze_whitespace(name);
trim(name);
replace_whitespace(name);
} }
static bool is_empty_string(const char* str) static bool is_empty_string(const char* str)
@ -3392,7 +3388,7 @@ int create_new_listener(CONFIG_CONTEXT *obj)
{ {
char service_name[strlen(raw_service_name) + 1]; char service_name[strlen(raw_service_name) + 1];
strcpy(service_name, raw_service_name); strcpy(service_name, raw_service_name);
fix_section_name(service_name); fix_object_name(service_name);
SERVICE *service = service_find(service_name); SERVICE *service = service_find(service_name);
if (service) if (service)
@ -3655,7 +3651,7 @@ void fix_serverlist(char* value)
while (start) while (start)
{ {
fix_section_name(start); fix_object_name(start);
dest += sep; dest += sep;
dest += start; dest += start;
sep = ","; sep = ",";
@ -3676,7 +3672,7 @@ void config_fix_param(const MXS_MODULE_PARAM *params, MXS_CONFIG_PARAMETER *p)
{ {
case MXS_MODULE_PARAM_SERVER: case MXS_MODULE_PARAM_SERVER:
case MXS_MODULE_PARAM_SERVICE: case MXS_MODULE_PARAM_SERVICE:
fix_section_name(p->value); fix_object_name(p->value);
break; break;
case MXS_MODULE_PARAM_SERVERLIST: case MXS_MODULE_PARAM_SERVERLIST:
@ -3714,7 +3710,7 @@ bool config_param_is_valid(const MXS_MODULE_PARAM *params, const char *key,
bool valid = false; bool valid = false;
char fixed_value[strlen(value) + 1]; char fixed_value[strlen(value) + 1];
strcpy(fixed_value, value); strcpy(fixed_value, value);
fix_section_name(fixed_value); fix_object_name(fixed_value);
for (int i = 0; params[i].name && !valid; i++) for (int i = 0; params[i].name && !valid; i++)
{ {
@ -3933,7 +3929,7 @@ int config_parse_server_list(const char *servers, char ***output_array)
{ {
char srv_name_tmp[strlen(s) + 1]; char srv_name_tmp[strlen(s) + 1];
strcpy(srv_name_tmp, s); strcpy(srv_name_tmp, s);
fix_section_name(srv_name_tmp); fix_object_name(srv_name_tmp);
if (strlen(srv_name_tmp) > 0) if (strlen(srv_name_tmp) > 0)
{ {

View File

@ -171,11 +171,15 @@ void config_add_module_params_json(const MXS_MODULE* mod,
json_t* output); json_t* output);
/** /**
* @brief Convert section names to new format * @brief Convert object names to correct format
* *
* @param section Section name to fix * Check that object name contains no whitespace. If the name contains
* whitespace, trim it, squeeze it and replace the remaining whitespace with
* hyphens.
*
* @param name Object name to fix
*/ */
void fix_section_name(char *section); void fix_object_name(char *name);
/** /**
* @brief Serialize global options * @brief Serialize global options

View File

@ -1142,7 +1142,7 @@ serviceSetFilters(SERVICE *service, char *filters)
ptr = strtok_r(filters, "|", &brkt); ptr = strtok_r(filters, "|", &brkt);
while (ptr) while (ptr)
{ {
fix_section_name(ptr); fix_object_name(ptr);
n++; n++;
MXS_FILTER_DEF **tmp; MXS_FILTER_DEF **tmp;

View File

@ -1816,17 +1816,17 @@ convert_arg(char *arg, int arg_type)
break; break;
case ARG_TYPE_OBJECT_NAME: case ARG_TYPE_OBJECT_NAME:
fix_section_name(arg); fix_object_name(arg);
rval = (unsigned long)arg; rval = (unsigned long)arg;
break; break;
case ARG_TYPE_SERVICE: case ARG_TYPE_SERVICE:
fix_section_name(arg); fix_object_name(arg);
rval = (unsigned long)service_find(arg); rval = (unsigned long)service_find(arg);
break; break;
case ARG_TYPE_SERVER: case ARG_TYPE_SERVER:
fix_section_name(arg); fix_object_name(arg);
rval = (unsigned long)server_find_by_unique_name(arg); rval = (unsigned long)server_find_by_unique_name(arg);
break; break;
@ -1835,12 +1835,12 @@ convert_arg(char *arg, int arg_type)
break; break;
case ARG_TYPE_MONITOR: case ARG_TYPE_MONITOR:
fix_section_name(arg); fix_object_name(arg);
rval = (unsigned long)monitor_find(arg); rval = (unsigned long)monitor_find(arg);
break; break;
case ARG_TYPE_FILTER: case ARG_TYPE_FILTER:
fix_section_name(arg); fix_object_name(arg);
rval = (unsigned long)filter_def_find(arg); rval = (unsigned long)filter_def_find(arg);
break; break;