Merge "ARI: Added new functionality to get information on a single module."

This commit is contained in:
Mark Michelson
2015-07-13 15:15:47 -05:00
committed by Gerrit Code Review
7 changed files with 239 additions and 3 deletions

View File

@@ -1445,6 +1445,34 @@ int ast_update_module_list_data(int (*modentry)(const char *module, const char *
return total_mod_loaded;
}
int ast_update_module_list_condition(int (*modentry)(const char *module, const char *description,
int usecnt, const char *status,
const char *like,
enum ast_module_support_level support_level,
void *data, const char *condition),
const char *like, void *data, const char *condition)
{
struct ast_module *cur;
int conditions_met = 0;
AST_LIST_HEAD_NOLOCK(, ast_module) alpha_module_list = AST_LIST_HEAD_NOLOCK_INIT_VALUE;
AST_DLLIST_LOCK(&module_list);
AST_DLLIST_TRAVERSE(&module_list, cur, entry) {
AST_LIST_INSERT_SORTALPHA(&alpha_module_list, cur, list_entry, resource);
}
while ((cur = AST_LIST_REMOVE_HEAD(&alpha_module_list, list_entry))) {
conditions_met += modentry(cur->resource, cur->info->description, cur->usecount,
cur->flags.running? "Running" : "Not Running", like, cur->info->support_level, data,
condition);
}
AST_DLLIST_UNLOCK(&module_list);
return conditions_met;
}
/*! \brief Check if module exists */
int ast_module_check(const char *name)
{