From a53efbb86c275507b9569a058b3a6391571392dc Mon Sep 17 00:00:00 2001 From: George Joseph Date: Tue, 2 Dec 2014 00:38:08 +0000 Subject: [PATCH] config: Create ast_variable_find_in_list() Add const char *ast_variable_find_in_list(const struct ast_variable *list, const char *variable); ast_variable_find() requires a config category to search whereas ast_variable_find_in_list() just needs the root list element which is useful if you don't have a category. Tested-by: George Joseph Review: https://reviewboard.asterisk.org/r/4217/ ........ Merged revisions 428733 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@428734 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/config.h | 14 ++++++++++++++ main/config.c | 9 +++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/include/asterisk/config.h b/include/asterisk/config.h index 2f604e0be3..7f0434d888 100644 --- a/include/asterisk/config.h +++ b/include/asterisk/config.h @@ -311,6 +311,20 @@ const char *ast_variable_retrieve(struct ast_config *config, */ const char *ast_variable_find(const struct ast_category *category, const char *variable); +/*! + * \brief Gets a variable from a variable list + * + * \param list variable list to search + * \param variable which variable you wish to get the data for + * + * \details + * Goes through a given variable list and searches for the given variable + * + * \retval The variable value on success + * \retval NULL if unable to find it. + */ +const char *ast_variable_find_in_list(const struct ast_variable *list, const char *variable); + /*! * \brief Retrieve a category if it exists * diff --git a/main/config.c b/main/config.c index 95f0b696e7..fe3ad3f9a6 100644 --- a/main/config.c +++ b/main/config.c @@ -720,9 +720,14 @@ const char *ast_variable_retrieve_filtered(struct ast_config *config, const char *ast_variable_find(const struct ast_category *category, const char *variable) { - struct ast_variable *v; + return ast_variable_find_in_list(category->root, variable); +} + +const char *ast_variable_find_in_list(const struct ast_variable *list, const char *variable) +{ + const struct ast_variable *v; - for (v = category->root; v; v = v->next) { + for (v = list; v; v = v->next) { if (!strcasecmp(variable, v->name)) { return v->value; }