mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-15 08:44:14 +00:00
Merge "stasis/endpoint: Fix memory leak of channel_ids in ast_endpoint structure." into 16
This commit is contained in:
@@ -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);
|
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)
|
* \brief Set uniqueid and linkedid string value only (not time)
|
||||||
* \param chan The channel to set the uniqueid to
|
* \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 */
|
/* Make sure the Stasis topic on the channel is updated appropriately */
|
||||||
ast_channel_internal_swap_topics(clonechan, original);
|
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
|
/* Swap channel names. This uses ast_channel_name_set directly, so we
|
||||||
* don't get any spurious rename events.
|
* 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;
|
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)
|
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));
|
ast_copy_string(chan->uniqueid.unique_id, uniqueid, sizeof(chan->uniqueid.unique_id));
|
||||||
|
Reference in New Issue
Block a user