Merge "stasis/endpoint: Fix memory leak of channel_ids in ast_endpoint structure." into 16
This commit is contained in:
commit
d76896a30b
|
@ -2649,6 +2649,18 @@ void ast_channel_internal_swap_uniqueid_and_linkedid(struct ast_channel *a, stru
|
|||
*/
|
||||
void ast_channel_internal_swap_topics(struct ast_channel *a, struct ast_channel *b);
|
||||
|
||||
/*!
|
||||
* \brief Swap endpoint_forward and endpoint_cache_forward between two channels
|
||||
* \param a First channel
|
||||
* \param b Second channel
|
||||
* \return void
|
||||
*
|
||||
* \note
|
||||
* This is used in masquerade to exchange endpoint details if one of the two or both
|
||||
* the channels were created with endpoint
|
||||
*/
|
||||
void ast_channel_internal_swap_endpoint_forward_and_endpoint_cache_forward(struct ast_channel *a, struct ast_channel *b);
|
||||
|
||||
/*!
|
||||
* \brief Set uniqueid and linkedid string value only (not time)
|
||||
* \param chan The channel to set the uniqueid to
|
||||
|
|
|
@ -6819,6 +6819,12 @@ static void channel_do_masquerade(struct ast_channel *original, struct ast_chann
|
|||
/* Make sure the Stasis topic on the channel is updated appropriately */
|
||||
ast_channel_internal_swap_topics(clonechan, original);
|
||||
|
||||
/* Swap endpoint forward and endpoint cache forward details of the channels,
|
||||
* so channel created with endpoint exchanges its state with other channel
|
||||
* for proper endpoint cleanup.
|
||||
*/
|
||||
ast_channel_internal_swap_endpoint_forward_and_endpoint_cache_forward(clonechan, original);
|
||||
|
||||
/* Swap channel names. This uses ast_channel_name_set directly, so we
|
||||
* don't get any spurious rename events.
|
||||
*/
|
||||
|
|
|
@ -1388,6 +1388,18 @@ void ast_channel_internal_swap_topics(struct ast_channel *a, struct ast_channel
|
|||
b->topics = temp;
|
||||
}
|
||||
|
||||
void ast_channel_internal_swap_endpoint_forward_and_endpoint_cache_forward(struct ast_channel *a, struct ast_channel *b)
|
||||
{
|
||||
struct stasis_forward *temp;
|
||||
temp = a->endpoint_forward;
|
||||
a->endpoint_forward = b->endpoint_forward;
|
||||
b->endpoint_forward = temp;
|
||||
|
||||
temp = a->endpoint_cache_forward;
|
||||
a->endpoint_cache_forward = b->endpoint_cache_forward;
|
||||
b->endpoint_cache_forward = temp;
|
||||
}
|
||||
|
||||
void ast_channel_internal_set_fake_ids(struct ast_channel *chan, const char *uniqueid, const char *linkedid)
|
||||
{
|
||||
ast_copy_string(chan->uniqueid.unique_id, uniqueid, sizeof(chan->uniqueid.unique_id));
|
||||
|
|
Loading…
Reference in New Issue