summaryrefslogtreecommitdiff
path: root/pjnath/src/pjnath/stun_session.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjnath/src/pjnath/stun_session.c')
-rw-r--r--pjnath/src/pjnath/stun_session.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/pjnath/src/pjnath/stun_session.c b/pjnath/src/pjnath/stun_session.c
index db1339d7..760aa76d 100644
--- a/pjnath/src/pjnath/stun_session.c
+++ b/pjnath/src/pjnath/stun_session.c
@@ -51,7 +51,9 @@ struct pj_stun_session
static void stun_tsx_on_complete(pj_stun_client_tsx *tsx,
pj_status_t status,
- const pj_stun_msg *response);
+ const pj_stun_msg *response,
+ const pj_sockaddr_t *src_addr,
+ unsigned src_addr_len);
static pj_status_t stun_tsx_on_send_msg(pj_stun_client_tsx *tsx,
const void *stun_pkt,
pj_size_t pkt_size);
@@ -325,7 +327,9 @@ static pj_status_t apply_msg_options(pj_stun_session *sess,
static void stun_tsx_on_complete(pj_stun_client_tsx *tsx,
pj_status_t status,
- const pj_stun_msg *response)
+ const pj_stun_msg *response,
+ const pj_sockaddr_t *src_addr,
+ unsigned src_addr_len)
{
pj_stun_tx_data *tdata;
@@ -333,7 +337,8 @@ static void stun_tsx_on_complete(pj_stun_client_tsx *tsx,
if (tdata->sess->cb.on_request_complete) {
(*tdata->sess->cb.on_request_complete)(tdata->sess, status, tdata,
- response);
+ response,
+ src_addr, src_addr_len);
}
}
@@ -696,7 +701,8 @@ PJ_DEF(pj_status_t) pj_stun_session_cancel_req( pj_stun_session *sess,
pj_mutex_lock(sess->mutex);
if (notify) {
- (sess->cb.on_request_complete)(sess, notify_status, tdata, NULL);
+ (sess->cb.on_request_complete)(sess, notify_status, tdata, NULL,
+ NULL, 0);
}
/* Just destroy tdata. This will destroy the transaction as well */
@@ -775,7 +781,9 @@ static pj_status_t authenticate_msg(pj_stun_session *sess,
/* Handle incoming response */
static pj_status_t on_incoming_response(pj_stun_session *sess,
- pj_stun_msg *msg)
+ pj_stun_msg *msg,
+ const pj_sockaddr_t *src_addr,
+ unsigned src_addr_len)
{
pj_stun_tx_data *tdata;
pj_status_t status;
@@ -792,7 +800,8 @@ static pj_status_t on_incoming_response(pj_stun_session *sess,
* If the message is accepted, transaction callback will be called,
* and this will call the session callback too.
*/
- status = pj_stun_client_tsx_on_rx_msg(tdata->client_tsx, msg);
+ status = pj_stun_client_tsx_on_rx_msg(tdata->client_tsx, msg,
+ src_addr, src_addr_len);
if (status != PJ_SUCCESS) {
return status;
}
@@ -958,7 +967,7 @@ PJ_DEF(pj_status_t) pj_stun_session_on_rx_pkt(pj_stun_session *sess,
if (PJ_STUN_IS_SUCCESS_RESPONSE(msg->hdr.type) ||
PJ_STUN_IS_ERROR_RESPONSE(msg->hdr.type))
{
- status = on_incoming_response(sess, msg);
+ status = on_incoming_response(sess, msg, src_addr, src_addr_len);
} else if (PJ_STUN_IS_REQUEST(msg->hdr.type)) {