Deprecate SetGlobalVar, replacing it with a dialplan function

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Tilghman Lesher 20 years ago
parent 1617adb055
commit 92314f96c5

@ -75,6 +75,12 @@ Applications:
been removed in this version. You should use the equivalent dialplan been removed in this version. You should use the equivalent dialplan
function in places where you have previously used one of these applications. 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 * 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. deprecated in version 1.2 and is no longer recognized in this version.

@ -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);

@ -5473,6 +5473,7 @@ static int pbx_builtin_setglobalvar(struct ast_channel *chan, void *data)
{ {
char *name; char *name;
char *stringp = data; char *stringp = data;
static int dep_warning = 0;
if (ast_strlen_zero(data)) { if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Ignoring, since there is no variable to set\n"); 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, "="); 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 ? */ /*! \todo XXX watch out, leading whitespace ? */
pbx_builtin_setvar_helper(NULL, name, stringp); pbx_builtin_setvar_helper(NULL, name, stringp);

Loading…
Cancel
Save