summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/manager.c8
-rw-r--r--main/pbx.c6
2 files changed, 5 insertions, 9 deletions
diff --git a/main/manager.c b/main/manager.c
index 8f01ea278..2d1fa476d 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -2813,12 +2813,8 @@ static int action_setvar(struct mansession *s, const struct message *m)
return 0;
}
}
- if (varname[strlen(varname)-1] == ')') {
- char *function = ast_strdupa(varname);
- res = ast_func_write(c, function, varval);
- } else {
- pbx_builtin_setvar_helper(c, varname, S_OR(varval, ""));
- }
+
+ res = pbx_builtin_setvar_helper(c, varname, S_OR(varval, ""));
if (c) {
c = ast_channel_unref(c);
diff --git a/main/pbx.c b/main/pbx.c
index 1b6e498f5..c13feffb7 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -9407,7 +9407,7 @@ void pbx_builtin_pushvar_helper(struct ast_channel *chan, const char *name, cons
ast_rwlock_unlock(&globalslock);
}
-void pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const char *value)
+int pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const char *value)
{
struct ast_var_t *newvariable;
struct varshead *headp;
@@ -9416,8 +9416,7 @@ void pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const
if (name[strlen(name) - 1] == ')') {
char *function = ast_strdupa(name);
- ast_func_write(chan, function, value);
- return;
+ return ast_func_write(chan, function, value);
}
if (chan) {
@@ -9462,6 +9461,7 @@ void pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const
ast_channel_unlock(chan);
else
ast_rwlock_unlock(&globalslock);
+ return 0;
}
int pbx_builtin_setvar(struct ast_channel *chan, const char *data)