mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	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
This commit is contained in:
		| @@ -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; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user