summaryrefslogtreecommitdiff
path: root/pjnath/src/pjnath/stun_session.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-03-26 13:25:07 +0000
committerBenny Prijono <bennylp@teluu.com>2007-03-26 13:25:07 +0000
commit63bbc72f8536347656ac59dea7fb9576c82ac55d (patch)
tree4a8b7fbb7b357b82cdeb49c44672439843155785 /pjnath/src/pjnath/stun_session.c
parent84b0defcf6903a8b014ab1ba38d8923282f230ed (diff)
ICE: implement RTCP component and cancelling check in progress
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1106 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjnath/src/pjnath/stun_session.c')
-rw-r--r--pjnath/src/pjnath/stun_session.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/pjnath/src/pjnath/stun_session.c b/pjnath/src/pjnath/stun_session.c
index 1a048f2c..9c275a11 100644
--- a/pjnath/src/pjnath/stun_session.c
+++ b/pjnath/src/pjnath/stun_session.c
@@ -677,6 +677,31 @@ PJ_DEF(pj_status_t) pj_stun_session_send_msg( pj_stun_session *sess,
return status;
}
+/*
+ * Cancel outgoing STUN transaction.
+ */
+PJ_DEF(pj_status_t) pj_stun_session_cancel_req( pj_stun_session *sess,
+ pj_stun_tx_data *tdata,
+ pj_bool_t notify,
+ pj_status_t notify_status)
+{
+ PJ_ASSERT_RETURN(sess && tdata, PJ_EINVAL);
+ PJ_ASSERT_RETURN(!notify || notify_status!=PJ_SUCCESS, PJ_EINVAL);
+ PJ_ASSERT_RETURN(PJ_STUN_IS_REQUEST(tdata->msg->hdr.type), PJ_EINVAL);
+
+ pj_mutex_lock(sess->mutex);
+
+ if (notify) {
+ (sess->cb.on_request_complete)(sess, notify_status, tdata, NULL);
+ }
+
+ /* Just destroy tdata. This will destroy the transaction as well */
+ pj_stun_msg_destroy_tdata(sess, tdata);
+
+ pj_mutex_unlock(sess->mutex);
+ return PJ_SUCCESS;
+
+}
/* Send response */
static pj_status_t send_response(pj_stun_session *sess,