mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	Deprecate SetGlobalVar, replacing it with a dialplan function
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -75,6 +75,12 @@ Applications: | ||||
|   been removed in this version.  You should use the equivalent dialplan | ||||
|   function in places where you have previously used one of these applications. | ||||
|  | ||||
| * The application SetGlobalVar has been deprecated.  You should replace uses | ||||
|   of this application with the following combination of Set and GLOBAL(): | ||||
|   Set(GLOBAL(name)=value).  You may also access global variables exclusively by | ||||
|   using the GLOBAL() dialplan function, instead of relying on variable | ||||
|   interpolation falling back to globals when no channel variable is set. | ||||
|  | ||||
| * The application SetVar has been renamed to Set.  The syntax SetVar was marked | ||||
|   deprecated in version 1.2 and is no longer recognized in this version. | ||||
|  | ||||
|   | ||||
							
								
								
									
										198
									
								
								funcs/func_global.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										198
									
								
								funcs/func_global.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,198 @@ | ||||
| /* | ||||
|  * Asterisk -- An open source telephony toolkit. | ||||
|  * | ||||
|  * Copyright (C) 2006, Tilghman Lesher | ||||
|  * | ||||
|  * Tilghman Lesher <func_global__200605@the-tilghman.com> | ||||
|  * | ||||
|  * See http://www.asterisk.org for more information about | ||||
|  * the Asterisk project. Please do not directly contact | ||||
|  * any of the maintainers of this project for assistance; | ||||
|  * the project provides a web site, mailing lists and IRC | ||||
|  * channels for your use. | ||||
|  * | ||||
|  * This program is free software, distributed under the terms of | ||||
|  * the GNU General Public License Version 2. See the LICENSE file | ||||
|  * at the top of the source tree. | ||||
|  */ | ||||
|  | ||||
| /*! \file | ||||
|  * | ||||
|  * \brief Global variable dialplan functions | ||||
|  * | ||||
|  * \author Tilghman Lesher <func_global__200605@the-tilghman.com> | ||||
|  */ | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <sys/types.h> | ||||
| #include <sys/stat.h> | ||||
|  | ||||
| #include "asterisk.h" | ||||
|  | ||||
| ASTERISK_FILE_VERSION(__FILE__, "$Revision$") | ||||
|  | ||||
| #include "asterisk/module.h" | ||||
| #include "asterisk/channel.h" | ||||
| #include "asterisk/pbx.h" | ||||
| #include "asterisk/utils.h" | ||||
|  | ||||
| static int global_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) | ||||
| { | ||||
| 	const char *var = pbx_builtin_getvar_helper(NULL, data); | ||||
|  | ||||
| 	*buf = '\0'; | ||||
|  | ||||
| 	if (var) | ||||
| 		ast_copy_string(buf, var, len); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static int global_write(struct ast_channel *chan, char *cmd, char *data, const char *value) | ||||
| { | ||||
| 	pbx_builtin_setvar_helper(NULL, data, value); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static struct ast_custom_function global_function = { | ||||
| 	.name = "GLOBAL", | ||||
| 	.synopsis = "Gets or sets the global variable specified", | ||||
| 	.syntax = "GLOBAL(<varname>)", | ||||
| 	.read = global_read, | ||||
| 	.write = global_write, | ||||
| }; | ||||
|  | ||||
| static char *tdesc = "Global variable dialplan functions"; | ||||
|  | ||||
| static int unload_module(void *mod) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	res |= ast_custom_function_unregister(&global_function); | ||||
|  | ||||
| 	return res; | ||||
| } | ||||
|  | ||||
| static int load_module(void *mod) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	res |= ast_custom_function_register(&global_function); | ||||
|  | ||||
| 	return res; | ||||
| } | ||||
|  | ||||
| static const char *description(void) | ||||
| { | ||||
| 	return tdesc; | ||||
| } | ||||
|  | ||||
|  | ||||
| static const char *key(void) | ||||
| { | ||||
| 	return ASTERISK_GPL_KEY; | ||||
| } | ||||
|  | ||||
| STD_MOD(MOD_1 | NO_USECOUNT, NULL, NULL, NULL); | ||||
| /* | ||||
|  * Asterisk -- An open source telephony toolkit. | ||||
|  * | ||||
|  * Copyright (C) 2006, Tilghman Lesher | ||||
|  * | ||||
|  * Tilghman Lesher <func_global__200605@the-tilghman.com> | ||||
|  * | ||||
|  * See http://www.asterisk.org for more information about | ||||
|  * the Asterisk project. Please do not directly contact | ||||
|  * any of the maintainers of this project for assistance; | ||||
|  * the project provides a web site, mailing lists and IRC | ||||
|  * channels for your use. | ||||
|  * | ||||
|  * This program is free software, distributed under the terms of | ||||
|  * the GNU General Public License Version 2. See the LICENSE file | ||||
|  * at the top of the source tree. | ||||
|  */ | ||||
|  | ||||
| /*! \file | ||||
|  * | ||||
|  * \brief Global variable dialplan functions | ||||
|  * | ||||
|  * \author Tilghman Lesher <func_global__200605@the-tilghman.com> | ||||
|  */ | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <sys/types.h> | ||||
| #include <sys/stat.h> | ||||
|  | ||||
| #include "asterisk.h" | ||||
|  | ||||
| ASTERISK_FILE_VERSION(__FILE__, "$Revision$") | ||||
|  | ||||
| #include "asterisk/module.h" | ||||
| #include "asterisk/channel.h" | ||||
| #include "asterisk/pbx.h" | ||||
| #include "asterisk/utils.h" | ||||
|  | ||||
| static int global_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) | ||||
| { | ||||
| 	const char *var = pbx_builtin_getvar_helper(NULL, data); | ||||
|  | ||||
| 	*buf = '\0'; | ||||
|  | ||||
| 	if (var) | ||||
| 		ast_copy_string(buf, var, len); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static int global_write(struct ast_channel *chan, char *cmd, char *data, const char *value) | ||||
| { | ||||
| 	pbx_builtin_setvar_helper(NULL, data, value); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static struct ast_custom_function global_function = { | ||||
| 	.name = "GLOBAL", | ||||
| 	.synopsis = "Gets or sets the global variable specified", | ||||
| 	.syntax = "GLOBAL(<varname>)", | ||||
| 	.read = global_read, | ||||
| 	.write = global_write, | ||||
| }; | ||||
|  | ||||
| static char *tdesc = "Global variable dialplan functions"; | ||||
|  | ||||
| static int unload_module(void *mod) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	res |= ast_custom_function_unregister(&global_function); | ||||
|  | ||||
| 	return res; | ||||
| } | ||||
|  | ||||
| static int load_module(void *mod) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	res |= ast_custom_function_register(&global_function); | ||||
|  | ||||
| 	return res; | ||||
| } | ||||
|  | ||||
| static const char *description(void) | ||||
| { | ||||
| 	return tdesc; | ||||
| } | ||||
|  | ||||
|  | ||||
| static const char *key(void) | ||||
| { | ||||
| 	return ASTERISK_GPL_KEY; | ||||
| } | ||||
|  | ||||
| STD_MOD(MOD_1 | NO_USECOUNT, NULL, NULL, NULL); | ||||
							
								
								
									
										7
									
								
								pbx.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								pbx.c
									
									
									
									
									
								
							| @@ -5473,6 +5473,7 @@ static int pbx_builtin_setglobalvar(struct ast_channel *chan, void *data) | ||||
| { | ||||
| 	char *name; | ||||
| 	char *stringp = data; | ||||
| 	static int dep_warning = 0; | ||||
|  | ||||
| 	if (ast_strlen_zero(data)) { | ||||
| 		ast_log(LOG_WARNING, "Ignoring, since there is no variable to set\n"); | ||||
| @@ -5480,6 +5481,12 @@ static int pbx_builtin_setglobalvar(struct ast_channel *chan, void *data) | ||||
| 	} | ||||
|  | ||||
| 	name = strsep(&stringp, "="); | ||||
|  | ||||
| 	if (!dep_warning) { | ||||
| 		dep_warning = 1; | ||||
| 		ast_log(LOG_WARNING, "SetGlobalVar is deprecated.  Please use Set(GLOBAL(%s)=%s) instead.\n", name, stringp); | ||||
| 	} | ||||
|  | ||||
| 	/*! \todo XXX watch out, leading whitespace ? */ | ||||
| 	pbx_builtin_setvar_helper(NULL, name, stringp); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user