mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Merge "res_pjsip: Record the serializer earlier on the tdata." into 13
This commit is contained in:
@@ -3642,6 +3642,8 @@ static pj_status_t endpt_send_request(struct ast_sip_endpoint *endpoint,
|
||||
}
|
||||
}
|
||||
|
||||
ast_sip_record_request_serializer(tdata);
|
||||
|
||||
/* We need to insure that the wrapper and tdata are available when the
|
||||
* transaction callback is executed.
|
||||
*/
|
||||
|
@@ -29,12 +29,11 @@
|
||||
|
||||
static int distribute(void *data);
|
||||
static pj_bool_t distributor(pjsip_rx_data *rdata);
|
||||
static pj_status_t record_serializer(pjsip_tx_data *tdata);
|
||||
|
||||
static pjsip_module distributor_mod = {
|
||||
.name = {"Request Distributor", 19},
|
||||
.priority = PJSIP_MOD_PRIORITY_TSX_LAYER - 6,
|
||||
.on_tx_request = record_serializer,
|
||||
.on_tx_request = ast_sip_record_request_serializer,
|
||||
.on_rx_request = distributor,
|
||||
.on_rx_response = distributor,
|
||||
};
|
||||
@@ -64,16 +63,7 @@ struct unidentified_request{
|
||||
/*! Pool of serializers to use if not supplied. */
|
||||
static struct ast_taskprocessor *distributor_pool[DISTRIBUTOR_POOL_SIZE];
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* \brief Record the task's serializer name on the tdata structure.
|
||||
* \since 14.0.0
|
||||
*
|
||||
* \param tdata The outgoing message.
|
||||
*
|
||||
* \retval PJ_SUCCESS.
|
||||
*/
|
||||
static pj_status_t record_serializer(pjsip_tx_data *tdata)
|
||||
pj_status_t ast_sip_record_request_serializer(pjsip_tx_data *tdata)
|
||||
{
|
||||
struct ast_taskprocessor *serializer;
|
||||
|
||||
|
@@ -360,6 +360,7 @@ static int send_unpublish_task(void *data)
|
||||
pjsip_tx_data_set_transport(tdata, &selector);
|
||||
}
|
||||
|
||||
ast_sip_record_request_serializer(tdata);
|
||||
pjsip_publishc_send(client->client, tdata);
|
||||
}
|
||||
|
||||
@@ -609,6 +610,7 @@ static int sip_publish_client_service_queue(void *data)
|
||||
pjsip_tx_data_set_transport(tdata, &selector);
|
||||
}
|
||||
|
||||
ast_sip_record_request_serializer(tdata);
|
||||
status = pjsip_publishc_send(client->client, tdata);
|
||||
if (status == PJ_EBUSY) {
|
||||
/* We attempted to send the message but something else got there first */
|
||||
@@ -921,6 +923,7 @@ static void sip_outbound_publish_callback(struct pjsip_publishc_cbparam *param)
|
||||
pjsip_tx_data_set_transport(tdata, &selector);
|
||||
}
|
||||
|
||||
ast_sip_record_request_serializer(tdata);
|
||||
pjsip_publishc_send(client->client, tdata);
|
||||
}
|
||||
client->auth_attempts++;
|
||||
|
@@ -539,6 +539,7 @@ static pj_status_t registration_client_send(struct sip_outbound_registration_cli
|
||||
*/
|
||||
ast_sip_set_tpselector_from_transport_name(client_state->transport_name, &selector);
|
||||
pjsip_regc_set_transport(client_state->client, &selector);
|
||||
ast_sip_record_request_serializer(tdata);
|
||||
status = pjsip_regc_send(client_state->client, tdata);
|
||||
|
||||
/* If the attempt to send the message failed and the callback was not invoked we need to
|
||||
|
Reference in New Issue
Block a user