diff --git a/ChangeLog b/ChangeLog index a7bced1e7d..9696353074 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2005-11-07 Kevin P. Fleming + * manager.c (action_setvar): add support for setting global variables (issue #5571) + * Makefile: correct cross-compilation issue introduced in Cygwin patches (issue #5572) * apps/app_voicemail.c: upgrade to new arg/option API and implement priority jumping control (issue #5649) diff --git a/manager.c b/manager.c index 1f38db260e..c4bfcec356 100755 --- a/manager.c +++ b/manager.c @@ -664,9 +664,9 @@ static int action_hangup(struct mansession *s, struct message *m) } static char mandescr_setvar[] = -"Description: Set a local channel variable.\n" +"Description: Set a global or local channel variable.\n" "Variables: (Names marked with * are required)\n" -" *Channel: Channel to set variable for\n" +" Channel: Channel to set variable for\n" " *Variable: Variable name\n" " *Value: Value\n"; @@ -677,25 +677,24 @@ static int action_setvar(struct mansession *s, struct message *m) char *varname = astman_get_header(m, "Variable"); char *varval = astman_get_header(m, "Value"); - if (!strlen(name)) { - astman_send_error(s, m, "No channel specified"); - return 0; - } - if (!strlen(varname)) { + if (ast_strlen_zero(varname)) { astman_send_error(s, m, "No variable specified"); return 0; } - c = ast_get_channel_by_name_locked(name); - if (!c) { - astman_send_error(s, m, "No such channel"); - return 0; + if (!ast_strlen_zero(name)) { + c = ast_get_channel_by_name_locked(name); + if (!c) { + astman_send_error(s, m, "No such channel"); + return 0; + } } pbx_builtin_setvar_helper(c,varname,varval); ast_mutex_unlock(&c->lock); astman_send_ack(s, m, "Variable Set"); + return 0; }