aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/pbx_config.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-14 15:34:54 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-14 15:34:54 +0000
commit5afdecc7695af16ff300ddb2f5391e9579b8298d (patch)
tree37225ffea5a2ba6f0ff9f5bfb6104e3c39501c9b /pbx/pbx_config.c
parentd22057f1446bea54540d35b7eabc0e6e2dbdc30a (diff)
Merged revisions 85540 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r85540 | russell | 2007-10-14 10:24:52 -0500 (Sun, 14 Oct 2007) | 7 lines Don't create the context for users in users.conf until we know at least one user exists. (closes issue #10971) Reported by: dimas Patches: pbxconfig.patch uploaded by dimas (license 88) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@85541 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/pbx_config.c')
-rw-r--r--pbx/pbx_config.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 4c7c42ae2..8596264ca 100644
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1543,15 +1543,12 @@ static void pbx_load_users(void)
int len;
int hasvoicemail;
int start, finish, x;
- struct ast_context *con;
+ struct ast_context *con = NULL;
struct ast_flags config_flags = { 0 };
cfg = ast_config_load("users.conf", config_flags);
if (!cfg)
return;
- con = ast_context_find_or_create(&local_contexts, userscontext, registrar);
- if (!con)
- return;
for (cat = ast_category_browse(cfg, NULL); cat ; cat = ast_category_browse(cfg, cat)) {
if (!strcasecmp(cat, "general"))
@@ -1603,6 +1600,16 @@ static void pbx_load_users(void)
}
}
if (!ast_strlen_zero(iface)) {
+ /* Only create a context here when it is really needed. Otherwise default empty context
+ created by pbx_config may conflict with the one explicitly created by pbx_ael */
+ if (!con)
+ con = ast_context_find_or_create(&local_contexts, userscontext, registrar);
+
+ if (!con) {
+ ast_log(LOG_ERROR, "Can't find/create user context '%s'\n", userscontext);
+ return;
+ }
+
/* Add hint */
ast_add_extension2(con, 0, cat, -1, NULL, NULL, iface, NULL, NULL, registrar);
/* If voicemail, use "stdexten" else use plain old dial */