summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2013-10-01 05:00:57 +0000
committerLiong Sauw Ming <ming@teluu.com>2013-10-01 05:00:57 +0000
commitb26d40d558f5be24bed5fb107cd4844f3cea1a03 (patch)
treecb2f7f217f4886b067cc01be4bd66966294e26db /pjmedia
parent087474f737e1bec37fe4507b024c6db3a794be90 (diff)
Fixed #1674: Deadlock when third party media employs external lock and ICE is active
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4606 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/include/pjmedia/transport_ice.h9
-rw-r--r--pjmedia/src/pjmedia/transport_ice.c6
2 files changed, 15 insertions, 0 deletions
diff --git a/pjmedia/include/pjmedia/transport_ice.h b/pjmedia/include/pjmedia/transport_ice.h
index 1b44467e..a461bdf6 100644
--- a/pjmedia/include/pjmedia/transport_ice.h
+++ b/pjmedia/include/pjmedia/transport_ice.h
@@ -221,6 +221,15 @@ PJ_DECL(pj_status_t) pjmedia_ice_create3(pjmedia_endpt *endpt,
void *user_data,
pjmedia_transport **p_tp);
+/**
+ * Get the group lock for the ICE media transport.
+ *
+ * @param tp The ICE media transport.
+ *
+ * @return The group lock.
+ */
+PJ_DECL(pj_grp_lock_t *) pjmedia_ice_get_grp_lock(pjmedia_transport *tp);
+
PJ_END_DECL
diff --git a/pjmedia/src/pjmedia/transport_ice.c b/pjmedia/src/pjmedia/transport_ice.c
index 06eef516..9ce9a333 100644
--- a/pjmedia/src/pjmedia/transport_ice.c
+++ b/pjmedia/src/pjmedia/transport_ice.c
@@ -283,6 +283,12 @@ PJ_DEF(pj_status_t) pjmedia_ice_create3(pjmedia_endpt *endpt,
return PJ_SUCCESS;
}
+PJ_DEF(pj_grp_lock_t *) pjmedia_ice_get_grp_lock(pjmedia_transport *tp)
+{
+ PJ_ASSERT_RETURN(tp, NULL);
+ return pj_ice_strans_get_grp_lock(((struct transport_ice *)tp)->ice_st);
+}
+
/* Disable ICE when SDP from remote doesn't contain a=candidate line */
static void set_no_ice(struct transport_ice *tp_ice, const char *reason,
pj_status_t err)