summaryrefslogtreecommitdiff
path: root/include/asterisk
diff options
context:
space:
mode:
authorGeorge Joseph <george.joseph@fairview5.com>2015-05-14 17:01:56 -0600
committerGeorge Joseph <george.joseph@fairview5.com>2015-05-15 16:18:11 -0600
commitdd78ab42e4316c53fa517ca19956d9be38f368a5 (patch)
treedd26c3896768f61a4c426504dfd300f72d4d3020 /include/asterisk
parent091b436007c55fbcc827cceb97a414a172aa36af (diff)
res_pjsip_config_wizard/config: Fix template processing
The config wizard was always pulling the first occurrence of a variable from an ast_variable list but this gets the template value from the list instead of any overridden value. This patch creates ast_variable_find_last_in_list() in config.c and updates res_pjsip_config_wizard to use it instead of ast_variable_find_in_list. Now the overridden values, where they exist, are used instead of template variables. Updated test_config to test the new API. ASTERISK-25089 #close Reported-by: George Joseph <george.joseph@fairview5.com> Tested-by: George Joseph <george.joseph@fairview5.com> Change-Id: Ifa7ddefc956a463923ee6839dd1ebe021c299de4
Diffstat (limited to 'include/asterisk')
-rw-r--r--include/asterisk/config.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/asterisk/config.h b/include/asterisk/config.h
index 555269546..8a375e526 100644
--- a/include/asterisk/config.h
+++ b/include/asterisk/config.h
@@ -335,6 +335,23 @@ const char *ast_variable_find(const struct ast_category *category, const char *v
const char *ast_variable_find_in_list(const struct ast_variable *list, const char *variable);
/*!
+ * \brief Gets the LAST occurrence of a variable from a variable list
+ *
+ * \param list The ast_variable list to search
+ * \param variable The name of the ast_variable you wish to fetch data for
+ *
+ * \details
+ * Iterates over a given ast_variable list to search for the last occurrence of an
+ * ast_variable entry with a name attribute matching the given name (variable).
+ * This is useful if the list has duplicate entries (such as in cases where entries
+ * are created by a template)
+ *
+ * \retval The variable value on success
+ * \retval NULL if unable to find it.
+ */
+const char *ast_variable_find_last_in_list(const struct ast_variable *list, const char *variable);
+
+/*!
* \brief Retrieve a category if it exists
*
* \param config which config to use