diff options
author | Matthew Jordan <mjordan@digium.com> | 2014-10-06 18:38:25 +0000 |
---|---|---|
committer | Matthew Jordan <mjordan@digium.com> | 2014-10-06 18:38:25 +0000 |
commit | 5c607f97359733d6b216d3422befa17c8b619dc4 (patch) | |
tree | 4063193d064485cc8af937292316022185f82010 /main | |
parent | 6a8cb946ebe6c3b94002d551f5b6a0560f0452db (diff) |
message: Don't close an AMI connection on SendMessage action error
If SendMessage encounters an error (such as incorrect input provided to the
action), it will currently return -1. Actions should only return -1 if the
connection to the AMI client should be closed. In this case, SendMessage
causing the client to disconnect is inappropriate.
This patch causes the action to return 0, which simply causes the action to
fail.
Review: https://reviewboard.asterisk.org/r/4024
ASTERISK-24354 #close
Reported by: Peter Katzmann
patches:
sendMessage.patch uploaded by Peter Katzmann (License 5968)
........
Merged revisions 424690 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 424691 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@424692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r-- | main/message.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/main/message.c b/main/message.c index cf4ee2b70..ff88c2f6d 100644 --- a/main/message.c +++ b/main/message.c @@ -1260,7 +1260,7 @@ static int action_messagesend(struct mansession *s, const struct message *m) if (ast_strlen_zero(to)) { astman_send_error(s, m, "No 'To' address specified."); - return -1; + return 0; } if (!ast_strlen_zero(base64body)) { @@ -1282,7 +1282,7 @@ static int action_messagesend(struct mansession *s, const struct message *m) if (!(msg = ast_msg_alloc())) { ast_rwlock_unlock(&msg_techs_lock); astman_send_error(s, m, "Internal failure\n"); - return -1; + return 0; } data = astman_get_variables_order(m, ORDER_NATURAL); @@ -1304,7 +1304,7 @@ static int action_messagesend(struct mansession *s, const struct message *m) } else { astman_send_ack(s, m, "Message successfully sent"); } - return res; + return 0; } int ast_msg_send(struct ast_msg *msg, const char *to, const char *from) |