summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Joseph <george.joseph@fairview5.com>2014-12-02 00:38:56 +0000
committerGeorge Joseph <george.joseph@fairview5.com>2014-12-02 00:38:56 +0000
commitf128ff61ab8f1f2df00a63c1322baa179f9b9b7c (patch)
tree1a6bf04d7aedaf2a03913c487d1c0defcfa2ed48
parentf418f25c449cc160f4e15b259076e516bba0f6bf (diff)
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 ........ Merged revisions 428734 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@428735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--include/asterisk/config.h14
-rw-r--r--main/config.c9
2 files changed, 21 insertions, 2 deletions
diff --git a/include/asterisk/config.h b/include/asterisk/config.h
index 2f604e0be..7f0434d88 100644
--- a/include/asterisk/config.h
+++ b/include/asterisk/config.h
@@ -312,6 +312,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
*
* \param config which config to use
diff --git a/main/config.c b/main/config.c
index 95f0b696e..fe3ad3f9a 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;
}