summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/features_config.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/main/features_config.c b/main/features_config.c
index f8bdb1c3c..ab4be937a 100644
--- a/main/features_config.c
+++ b/main/features_config.c
@@ -418,10 +418,11 @@ static struct features_global_config *global_config_alloc(void)
return cfg;
}
-static struct ao2_container *applicationmap_alloc(void)
+static struct ao2_container *applicationmap_alloc(int reject_duplicates)
{
return ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_NOLOCK,
- AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, applicationmap_sort, NULL);
+ reject_duplicates ? AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT : AO2_CONTAINER_ALLOC_OPT_DUPS_ALLOW,
+ applicationmap_sort, NULL);
}
/*!
@@ -457,7 +458,7 @@ static struct features_config *__features_config_alloc(int allocate_applicationm
}
if (allocate_applicationmap) {
- cfg->applicationmap = applicationmap_alloc();
+ cfg->applicationmap = applicationmap_alloc(1);
if (!cfg->applicationmap) {
return NULL;
}
@@ -999,7 +1000,7 @@ struct ao2_container *ast_get_chan_applicationmap(struct ast_channel *chan)
return NULL;
}
- applicationmap = applicationmap_alloc();
+ applicationmap = applicationmap_alloc(0);
if (!applicationmap) {
return NULL;
}