Merged revisions 139457 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

................
r139457 | mmichelson | 2008-08-22 11:58:21 -0500 (Fri, 22 Aug 2008) | 15 lines

Merged revisions 139456 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r139456 | mmichelson | 2008-08-22 11:57:38 -0500 (Fri, 22 Aug 2008) | 7 lines

Prevent a deadlock in chan_iax2 resulting from
incorrect locking order between iax2_pvt and
ast_channel structures.

AST-13


........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@139458 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Mark Michelson 17 years ago
parent 00f59da391
commit 3c9ac8be44

@ -8694,11 +8694,14 @@ retryowner:
pbx_builtin_setvar_helper(bridged_chan, "BLINDTRANSFER", iaxs[fr->callno]->owner->name); pbx_builtin_setvar_helper(bridged_chan, "BLINDTRANSFER", iaxs[fr->callno]->owner->name);
if (!strcmp(ies.called_number, ast_parking_ext())) { if (!strcmp(ies.called_number, ast_parking_ext())) {
if (iax_park(bridged_chan, iaxs[fr->callno]->owner)) { struct ast_channel *saved_channel = iaxs[fr->callno]->owner;
ast_mutex_unlock(iaxsl[fr->callno]);
if (iax_park(bridged_chan, saved_channel)) {
ast_log(LOG_WARNING, "Failed to park call on '%s'\n", bridged_chan->name); ast_log(LOG_WARNING, "Failed to park call on '%s'\n", bridged_chan->name);
} else { } else {
ast_debug(1, "Parked call on '%s'\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name); ast_debug(1, "Parked call on '%s'\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name);
} }
ast_mutex_lock(iaxsl[fr->callno]);
} else { } else {
if (ast_async_goto(bridged_chan, iaxs[fr->callno]->context, ies.called_number, 1)) if (ast_async_goto(bridged_chan, iaxs[fr->callno]->context, ies.called_number, 1))
ast_log(LOG_WARNING, "Async goto of '%s' to '%s@%s' failed\n", bridged_chan->name, ast_log(LOG_WARNING, "Async goto of '%s' to '%s@%s' failed\n", bridged_chan->name,

Loading…
Cancel
Save