]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Hangup affected channel in error paths of bridge_call_thread().
authorRichard Mudgett <rmudgett@digium.com>
Wed, 25 Apr 2012 00:01:21 +0000 (00:01 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 25 Apr 2012 00:01:21 +0000 (00:01 +0000)
........

Merged revisions 363375 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363376 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/features.c

index a774870c9933cb9365e31dfa59dd1a81706346b0..4b2295dd9fc39a0eabbeca22b317f75a3b27a616 100644 (file)
@@ -922,17 +922,23 @@ static void *bridge_call_thread(void *data)
                if (!ast_check_hangup(tobj->peer)) {
                        ast_log(LOG_VERBOSE, "putting peer %s into PBX again\n", tobj->peer->name);
                        res = ast_pbx_start(tobj->peer);
-                       if (res != AST_PBX_SUCCESS)
+                       if (res != AST_PBX_SUCCESS) {
                                ast_log(LOG_WARNING, "FAILED continuing PBX on peer %s\n", tobj->peer->name);
-               } else
+                               ast_hangup(tobj->peer);
+                       }
+               } else {
                        ast_hangup(tobj->peer);
+               }
                if (!ast_check_hangup(tobj->chan)) {
                        ast_log(LOG_VERBOSE, "putting chan %s into PBX again\n", tobj->chan->name);
                        res = ast_pbx_start(tobj->chan);
-                       if (res != AST_PBX_SUCCESS)
+                       if (res != AST_PBX_SUCCESS) {
                                ast_log(LOG_WARNING, "FAILED continuing PBX on chan %s\n", tobj->chan->name);
-               } else
+                               ast_hangup(tobj->chan);
+                       }
+               } else {
                        ast_hangup(tobj->chan);
+               }
        } else {
                ast_hangup(tobj->chan);
                ast_hangup(tobj->peer);