Skip to content
Snippets Groups Projects
Commit 726e3945 authored by zuul's avatar zuul Committed by Gerrit Code Review
Browse files

Merge "pbx_realtime: Prevent premature extension matching" into 13

parents 89e0bf6d ca6d0011
No related branches found
No related tags found
No related merge requests found
......@@ -143,6 +143,13 @@ static void *cleanup(void *unused)
return NULL;
}
static int extension_length_comparator(struct ast_category *p, struct ast_category *q)
{
const char *extenp = S_OR(ast_variable_find(p, "exten"), "");
const char *extenq = S_OR(ast_variable_find(q, "exten"), "");
return strlen(extenp) - strlen(extenq);
}
/* Realtime switch looks up extensions in the supplied realtime table.
......@@ -193,6 +200,9 @@ static struct ast_variable *realtime_switch_common(const char *table, const char
if (cfg) {
char *cat = NULL;
/* Sort so that longer patterns are checked first */
ast_config_sort_categories(cfg, 1, extension_length_comparator);
while ((cat = ast_category_browse(cfg, cat))) {
const char *realtime_exten = ast_variable_retrieve(cfg, cat, "exten");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment