summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2012-04-25 00:03:52 +0000
committerRichard Mudgett <rmudgett@digium.com>2012-04-25 00:03:52 +0000
commit56d10c56779c48a4118bfeab2a5a8a7d33055609 (patch)
tree63e9326e34284d31708749b0e692be3035f3d8f0 /main
parent18045c9a07efc40f3adf7e4749317fecda663353 (diff)
Hangup affected channel in error paths of bridge_call_thread().
........ Merged revisions 363375 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363376 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@363377 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/features.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/main/features.c b/main/features.c
index aea0d1e97..9a09058bd 100644
--- a/main/features.c
+++ b/main/features.c
@@ -967,17 +967,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", ast_channel_name(tobj->peer));
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", ast_channel_name(tobj->peer));
- } 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", ast_channel_name(tobj->chan));
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", ast_channel_name(tobj->chan));
- } else
+ ast_hangup(tobj->chan);
+ }
+ } else {
ast_hangup(tobj->chan);
+ }
} else {
ast_hangup(tobj->chan);
ast_hangup(tobj->peer);