diff options
author | George Joseph <george.joseph@fairview5.com> | 2015-05-14 17:01:56 -0600 |
---|---|---|
committer | George Joseph <george.joseph@fairview5.com> | 2015-05-15 16:18:11 -0600 |
commit | dd78ab42e4316c53fa517ca19956d9be38f368a5 (patch) | |
tree | dd26c3896768f61a4c426504dfd300f72d4d3020 /tests/test_config.c | |
parent | 091b436007c55fbcc827cceb97a414a172aa36af (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 'tests/test_config.c')
-rw-r--r-- | tests/test_config.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_config.c b/tests/test_config.c index df618f9f7..b9935dc79 100644 --- a/tests/test_config.c +++ b/tests/test_config.c @@ -234,6 +234,7 @@ AST_TEST_DEFINE(config_basic_ops) struct ast_config *cfg = NULL; struct ast_category *cat = NULL; struct ast_variable *var; + struct ast_variable *varlist; char temp[32]; const char *cat_name; const char *var_value; @@ -537,6 +538,22 @@ AST_TEST_DEFINE(config_basic_ops) goto out; } + varlist = ast_variable_new("name1", "value1", ""); + ast_variable_list_append_hint(&varlist, NULL, ast_variable_new("name1", "value2", "")); + ast_variable_list_append_hint(&varlist, NULL, ast_variable_new("name1", "value3", "")); + + var_value = ast_variable_find_in_list(varlist, "name1"); + if (strcmp(var_value, "value1") != 0) { + ast_test_status_update(test, "Wrong variable retrieved %s.\n", var_value); + goto out; + } + + var_value = ast_variable_find_last_in_list(varlist, "name1"); + if (strcmp(var_value, "value3") != 0) { + ast_test_status_update(test, "Wrong variable retrieved %s.\n", var_value); + goto out; + } + res = AST_TEST_PASS; out: |