[asterisk-commits] russell: branch 1.2 r60134 - /branches/1.2/manager.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Apr 4 10:38:48 MST 2007


Author: russell
Date: Wed Apr  4 12:38:47 2007
New Revision: 60134

URL: http://svn.digium.com/view/asterisk?view=rev&rev=60134
Log:
It is valid to redirect channels via the manager interface that are not in the
UP state.  Instead of checking for that to prevent to ensure a dead channel
doesn't get redirected, just use the ast_check_hangup() API call.
(issue #9457, reported by Callmewind, patch by me)
(related to issue #8977)

Modified:
    branches/1.2/manager.c

Modified: branches/1.2/manager.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/manager.c?view=diff&rev=60134&r1=60133&r2=60134
==============================================================================
--- branches/1.2/manager.c (original)
+++ branches/1.2/manager.c Wed Apr  4 12:38:47 2007
@@ -885,15 +885,15 @@
 		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");
+	if (ast_check_hangup(chan)) {
+		astman_send_error(s, m, "Redirect failed, channel hung 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");
+	if (chan2 && ast_check_hangup(chan2)) {
+		astman_send_error(s, m, "Redirect failed, extra channel hung up.\n");
 		ast_mutex_unlock(&chan->lock);
 		ast_mutex_unlock(&chan2->lock);
 		return 0;



More information about the asterisk-commits mailing list