summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pycko <martinp@digium.com>2003-07-14 17:16:47 +0000
committerMartin Pycko <martinp@digium.com>2003-07-14 17:16:47 +0000
commitf4341a13d0ec2ff8c0e0e83fff59fbbd1b487f95 (patch)
treecccae360b948938caafdcf4131773e100ef93c63
parentc6a3f83e831403c794f3dfcab770a1e8b20f6df9 (diff)
Add the possibility to delete all the contexts registered by a certain registrar with ast_merge_and_delete routine; make it the default behaviour when reloding extensions
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rwxr-xr-xinclude/asterisk/pbx.h3
-rwxr-xr-xpbx/pbx_config.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h
index e1d7f96e2..ae45e5e73 100755
--- a/include/asterisk/pbx.h
+++ b/include/asterisk/pbx.h
@@ -131,8 +131,9 @@ struct ast_context *ast_context_create(struct ast_context **extcontexts, char *n
//! Merge the temporary contexts into a global contexts list and delete from the global list the ones that are being added
/*!
* \param extcontexts pointer to the ast_context structure pointer
+ * \param registar of the context; if it's set the routine will delete all contexts that belong to that registrar; if NULL only the contexts that are specified in extcontexts
*/
-void ast_merge_contexts_and_delete(struct ast_context **extcontexts);
+void ast_merge_contexts_and_delete(struct ast_context **extcontexts, char *registrar);
//! Destroy a context (matches the specified context (or ANY context if NULL)
/*!
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 0b15e5694..844386354 100755
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1641,7 +1641,7 @@ static int pbx_load_module(void)
}
ast_destroy(cfg);
}
- ast_merge_contexts_and_delete(&local_contexts);
+ ast_merge_contexts_and_delete(&local_contexts,registrar);
return 0;
}