Skip to content
Snippets Groups Projects
Commit ce89d985 authored by Kevin P. Fleming's avatar Kevin P. Fleming
Browse files

allow global variables to be reset on reload (defaults to off) (bug #4385)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5825 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent db402ee5
No related branches found
No related tags found
No related merge requests found
......@@ -34,7 +34,16 @@ writeprotect=no
; (this is the original behavior of Asterisk 1.0 and earlier).
;
autofallthrough=yes
;
; If clearglobalvars is set, global variables will be cleared
; and reparsed on an extensions reload, or Asterisk reload.
;
; If clearglobalvars is not set, then global variables will persist
; through reloads, and even if deleted from the extensions.conf or
; one if its included files, will remain set to the previous value.
;
clearglobalvars=no
;
; You can include other config files, use the #include command (without the ';')
; Note that this is different from the "include" command that includes contexts within
; other contexts. The #include command works in all asterisk configuration files.
......
......@@ -44,6 +44,7 @@ static char *registrar = "pbx_config";
static int static_config = 0;
static int write_protect_config = 1;
static int autofallthrough_config = 0;
static int clearglobalvars_config = 0;
AST_MUTEX_DEFINE_STATIC(save_dialplan_lock);
......@@ -97,7 +98,8 @@ static char context_remove_ignorepat_help[] =
static char reload_extensions_help[] =
"Usage: reload extensions.conf without reloading any other modules\n"
" This command does not delete global variables\n"
" This command does not delete global variables unless\n"
" clearglobalvars is set to yes in extensions.conf\n"
"\n"
"Example: extensions reload\n";
......@@ -1636,6 +1638,9 @@ static int pbx_load_module(void)
autofallthrough_config = ast_true(ast_variable_retrieve(cfg, "general",
"autofallthrough"));
clearglobalvars_config = ast_true(ast_variable_retrieve(cfg, "general",
"clearglobalvars"));
v = ast_variable_browse(cfg, "globals");
while(v) {
memset(realvalue, 0, sizeof(realvalue));
......@@ -1816,10 +1821,8 @@ int load_module(void)
int reload(void)
{
ast_context_destroy(NULL, registrar);
/* For martin's global variables, don't clear them on reload */
#if 0
pbx_builtin_clear_globals();
#endif
if (clearglobalvars_config)
pbx_builtin_clear_globals();
pbx_load_module();
return 0;
}
......
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