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 a455e18320
commit bf2d35931d
18 changed files with 126 additions and 75 deletions

View File

@@ -242,15 +242,28 @@ static struct aco_type general_option = {
.type = ACO_GLOBAL,
.name = "general",
.item_offset = offsetof(struct cel_config, general),
.category_match = ACO_WHITELIST,
.category = "^general$",
.category_match = ACO_WHITELIST_EXACT,
.category = "general",
};
/*! Config sections used by existing modules. Do not add to this list. */
static const char *ignore_categories[] = {
"manager",
"radius",
NULL,
};
static struct aco_type ignore_option = {
.type = ACO_IGNORE,
.name = "modules",
.category = (const char*)ignore_categories,
.category_match = ACO_WHITELIST_ARRAY,
};
/*! \brief The config file to be processed for the module. */
static struct aco_file cel_conf = {
.filename = "cel.conf", /*!< The name of the config file */
.types = ACO_TYPES(&general_option), /*!< The mapping object types to be processed */
.skip_category = "(^manager$|^radius$)", /*!< Config sections used by existing modules. Do not add to this list. */
.types = ACO_TYPES(&general_option, &ignore_option), /*!< The mapping object types to be processed */
};
static int cel_pre_apply_config(void);