Fix the config_options_test

The config options test requires the entire configuration item to be transparent from
the documentation system. So we let it do that too.

As an aside, please do not use this power for evil. Documentation is your friend, and
you really should document your configurations. Hiding your module's configuration
information from the system attempting to enforce some sanity in the universe is something
only a Bond villain would contemplate.
........

Merged revisions 397628 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397629 65c4cc65-6c06-0410-ace0-fbb531ad65f3
changes/97/197/1
Matthew Jordan 12 years ago
parent de44880645
commit 447848a580

@ -156,6 +156,7 @@ struct aco_file {
struct aco_info {
const char *module; /*!< The name of the module whose config is being processed */
int hidden:1; /*!< If enabled, this config item is hidden from users */
aco_pre_apply_config pre_apply_config; /*!< A callback called after processing, but before changes are applied */
aco_post_apply_config post_apply_config;/*!< A callback called after changes are applied */
aco_snapshot_alloc snapshot_alloc; /*!< Allocate an object to hold all global configs and item containers */
@ -213,6 +214,15 @@ static struct aco_info name = { \
__VA_ARGS__ \
};
#define CONFIG_INFO_TEST(name, arr, alloc, ...) \
static struct aco_info name = { \
.module = AST_MODULE, \
.global_obj = &arr, \
.snapshot_alloc = alloc, \
.hidden = 1, \
__VA_ARGS__ \
};
/*! \brief Initialize an aco_info structure
* \note aco_info_destroy must be called if this succeeds
* \param info The address of an aco_info struct to initialize

@ -184,7 +184,9 @@ static int link_option_to_types(struct aco_info *info, struct aco_type **types,
}
if (!ao2_link(type->internal->opts, opt)
#ifdef AST_XML_DOCS
|| (!opt->no_doc && xmldoc_update_config_option(types, info->module, opt->name, type->name, opt->default_val, opt->match_type == ACO_REGEX, opt->type))
|| (!info->hidden &&
!opt->no_doc &&
xmldoc_update_config_option(types, info->module, opt->name, type->name, opt->default_val, opt->match_type == ACO_REGEX, opt->type))
#endif /* AST_XML_DOCS */
) {
do {
@ -773,7 +775,9 @@ int aco_info_init(struct aco_info *info)
goto error;
}
#ifdef AST_XML_DOCS
if (!type->hidden && xmldoc_update_config_type(info->module, type->name, type->category, type->matchfield, type->matchvalue, type->category_match == ACO_WHITELIST)) {
if (!info->hidden &&
!type->hidden &&
xmldoc_update_config_type(info->module, type->name, type->category, type->matchfield, type->matchvalue, type->category_match == ACO_WHITELIST)) {
goto error;
}
#endif /* AST_XML_DOCS */

@ -749,7 +749,7 @@ struct aco_file config_test_conf = {
};
static AO2_GLOBAL_OBJ_STATIC(global_obj);
CONFIG_INFO_STANDARD(cfg_info, global_obj, test_config_alloc,
CONFIG_INFO_TEST(cfg_info, global_obj, test_config_alloc,
.files = ACO_FILES(&config_test_conf),
);

Loading…
Cancel
Save