diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-13 20:30:39 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-13 20:30:39 +0000 |
commit | 2372f06a110f4c4a2a6a40ba4f5328ac75863c67 (patch) | |
tree | 935fef4616ceea80f4bd16e409867f509569e8bc /manager.c | |
parent | 9ba261ff562f342f01a5cd9defcfa6b6d99c3100 (diff) |
allow manager getvar action to retrieve global variables as well as
channel variables (issue #5429)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6763 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'manager.c')
-rwxr-xr-x | manager.c | 21 |
1 files changed, 10 insertions, 11 deletions
@@ -689,9 +689,9 @@ static int action_setvar(struct mansession *s, struct message *m) } static char mandescr_getvar[] = -"Description: Get the value of a local channel variable.\n" +"Description: Get the value of a global or local channel variable.\n" "Variables: (Names marked with * are required)\n" -" *Channel: Channel to read variable from\n" +" Channel: Channel to read variable from\n" " *Variable: Variable name\n" " ActionID: Optional Action id for message matching.\n"; @@ -704,19 +704,17 @@ static int action_getvar(struct mansession *s, struct message *m) char *varval; char *varval2=NULL; - if (!strlen(name)) { - astman_send_error(s, m, "No channel specified"); - return 0; - } if (!strlen(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 (strlen(name)) { + c = ast_get_channel_by_name_locked(name); + if (!c) { + astman_send_error(s, m, "No such channel"); + return 0; + } } varval=pbx_builtin_getvar_helper(c,varname); @@ -724,7 +722,8 @@ static int action_getvar(struct mansession *s, struct message *m) varval2 = ast_strdupa(varval); if (!varval2) varval2 = ""; - ast_mutex_unlock(&c->lock); + if (c) + ast_mutex_unlock(&c->lock); ast_cli(s->fd, "Response: Success\r\n" "Variable: %s\r\nValue: %s\r\n" ,varname,varval2); if (id && !ast_strlen_zero(id)) |