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
This commit is contained in:
George Joseph
2015-05-14 17:01:56 -06:00
parent 091b436007
commit dd78ab42e4
4 changed files with 65 additions and 18 deletions

View File

@@ -735,6 +735,19 @@ const char *ast_variable_find_in_list(const struct ast_variable *list, const cha
return NULL;
}
const char *ast_variable_find_last_in_list(const struct ast_variable *list, const char *variable)
{
const struct ast_variable *v;
const char *found = NULL;
for (v = list; v; v = v->next) {
if (!strcasecmp(variable, v->name)) {
found = v->value;
}
}
return found;
}
static struct ast_variable *variable_clone(const struct ast_variable *old)
{
struct ast_variable *new = ast_variable_new(old->name, old->value, old->file);