]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge Script <automerge@asterisk.org>
Wed, 7 Mar 2007 01:05:32 +0000 (01:05 +0000)
committerAutomerge Script <automerge@asterisk.org>
Wed, 7 Mar 2007 01:05:32 +0000 (01:05 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@58207 65c4cc65-6c06-0410-ace0-fbb531ad65f3

manager.c

index d3488db7f74b0ae068dfa6e9442cfc19d1139e1b..30210a2f5fab4f705505f2f1bd224626d81b52fc 100644 (file)
--- a/manager.c
+++ b/manager.c
@@ -885,8 +885,19 @@ static int action_redirect(struct mansession *s, struct message *m)
                astman_send_error(s, m, buf);
                return 0;
        }
+       if (chan->_state != AST_STATE_UP) {
+               astman_send_error(s, m, "Redirect failed, channel not up.\n");
+               ast_mutex_unlock(&chan->lock);
+               return 0;
+       }
        if (!ast_strlen_zero(name2))
                chan2 = ast_get_channel_by_name_locked(name2);
+       if (chan2 && chan2->_state != AST_STATE_UP) {
+               astman_send_error(s, m, "Redirect failed, extra channel not up.\n");
+               ast_mutex_unlock(&chan->lock);
+               ast_mutex_unlock(&chan2->lock);
+               return 0;
+       }
        res = ast_async_goto(chan, context, exten, pi);
        if (!res) {
                if (!ast_strlen_zero(name2)) {