mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-11 23:28:59 +00:00
Remove the unsafe bridge parameter from ast_bridge_hook_callback's.
Most hook callbacks did not need the bridge parameter. The pointer value could become invalid if the channel is moved to another bridge while it is executing. * Fixed some issues in feature_attended_transfer() as a result. * Reduce the bridge inhibit count in attended_transfer_properties_shutdown() after it has restored the bridge channel hooks. * Removed basic bridge requirement on feature_blind_transfer(). It does not require the basic bridge like feature_attended_transfer(). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1078,12 +1078,11 @@ static void agent_connect_caller(struct ast_bridge_channel *bridge_channel, stru
|
||||
* The agent is in the new bridge so we can invoke the
|
||||
* mixmonitor hook to only start recording.
|
||||
*/
|
||||
ast_bridge_features_do(AST_BRIDGE_BUILTIN_AUTOMIXMON, caller_bridge,
|
||||
bridge_channel, &options);
|
||||
ast_bridge_features_do(AST_BRIDGE_BUILTIN_AUTOMIXMON, bridge_channel, &options);
|
||||
}
|
||||
}
|
||||
|
||||
static int bridge_agent_hold_ack(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, void *hook_pvt)
|
||||
static int bridge_agent_hold_ack(struct ast_bridge_channel *bridge_channel, void *hook_pvt)
|
||||
{
|
||||
struct agent_pvt *agent = hook_pvt;
|
||||
|
||||
@@ -1101,7 +1100,7 @@ static int bridge_agent_hold_ack(struct ast_bridge *bridge, struct ast_bridge_ch
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bridge_agent_hold_heartbeat(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, void *hook_pvt)
|
||||
static int bridge_agent_hold_heartbeat(struct ast_bridge_channel *bridge_channel, void *hook_pvt)
|
||||
{
|
||||
struct agent_pvt *agent = hook_pvt;
|
||||
int probation_timedout = 0;
|
||||
@@ -1709,7 +1708,7 @@ static void caller_abort_agent(struct agent_pvt *agent)
|
||||
ast_bridge_channel_unlock(logged);
|
||||
}
|
||||
|
||||
static int caller_safety_timeout(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, void *hook_pvt)
|
||||
static int caller_safety_timeout(struct ast_bridge_channel *bridge_channel, void *hook_pvt)
|
||||
{
|
||||
struct agent_pvt *agent = hook_pvt;
|
||||
|
||||
|
Reference in New Issue
Block a user