aco: Minimize use of regex.

Remove nearly all use of regex from ACO users.  Still remaining:
* app_confbridge has a legitamate use of option name regex.
* ast_sorcery_object_fields_register is implemented with regex, all
  callers use simple prefix based regex.  I haven't decided the best
  way to fix this in both 13/15 and master.

Change-Id: Ib5ed478218d8a661ace4d2eaaea98b59a897974b
This commit is contained in:
Corey Farrell
2017-12-12 13:55:12 -05:00
parent 7413bcbeb5
commit 501f4dcdd8
17 changed files with 124 additions and 73 deletions

View File

@@ -241,8 +241,29 @@ static struct aco_type general_option = {
.type = ACO_GLOBAL,
.name = "general",
.item_offset = offsetof(struct module_config, general),
.category = "^general$",
.category_match = ACO_WHITELIST,
.category = "general",
.category_match = ACO_WHITELIST_EXACT,
};
/*! Config sections used by existing modules. Do not add to this list. */
static const char *ignore_categories[] = {
"csv",
"custom",
"manager",
"odbc",
"pgsql",
"radius",
"sqlite",
"tds",
"mysql",
NULL,
};
static struct aco_type ignore_option = {
.type = ACO_IGNORE,
.name = "modules",
.category = (const char*)ignore_categories,
.category_match = ACO_WHITELIST_ARRAY,
};
static void *module_config_alloc(void);
@@ -252,8 +273,7 @@ static void module_config_post_apply(void);
/*! \brief The file definition */
static struct aco_file module_file_conf = {
.filename = "cdr.conf",
.skip_category = "(^csv$|^custom$|^manager$|^odbc$|^pgsql$|^radius$|^sqlite$|^tds$|^mysql$)",
.types = ACO_TYPES(&general_option),
.types = ACO_TYPES(&general_option, &ignore_option),
};
CONFIG_INFO_CORE("cdr", cfg_info, module_configs, module_config_alloc,