summaryrefslogtreecommitdiff
path: root/pjmedia/src
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2013-02-21 20:49:19 +0000
committerNanang Izzuddin <nanang@teluu.com>2013-02-21 20:49:19 +0000
commitc1fac09695b25a676f33024cde2a8d956bb4166e (patch)
tree4a845923fc7e0d6eaddadc16f05af13e82d3b746 /pjmedia/src
parentae3b76891da4b6e3793cc7f0c2896de92b8a7d46 (diff)
Close #1625: Introduced new API pjmedia_sdp_validate2() for allowing SDP media without c= line when port is zero, currently it is only applied in validating remote SDP.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4367 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r--pjmedia/src/pjmedia/sdp.c12
-rw-r--r--pjmedia/src/pjmedia/sdp_neg.c2
2 files changed, 12 insertions, 2 deletions
diff --git a/pjmedia/src/pjmedia/sdp.c b/pjmedia/src/pjmedia/sdp.c
index 629500c7..0d6b4f3c 100644
--- a/pjmedia/src/pjmedia/sdp.c
+++ b/pjmedia/src/pjmedia/sdp.c
@@ -1423,6 +1423,14 @@ static pj_status_t validate_sdp_conn(const pjmedia_sdp_conn *c)
/* Validate SDP session descriptor. */
PJ_DEF(pj_status_t) pjmedia_sdp_validate(const pjmedia_sdp_session *sdp)
{
+ return pjmedia_sdp_validate2(sdp, PJ_TRUE);
+}
+
+
+/* Validate SDP session descriptor. */
+PJ_DEF(pj_status_t) pjmedia_sdp_validate2(const pjmedia_sdp_session *sdp,
+ pj_bool_t strict)
+{
unsigned i;
const pj_str_t STR_RTPMAP = { "rtpmap", 6 };
@@ -1471,7 +1479,8 @@ PJ_DEF(pj_status_t) pjmedia_sdp_validate(const pjmedia_sdp_session *sdp)
*/
if (m->conn == NULL) {
if (sdp->conn == NULL)
- return PJMEDIA_SDP_EMISSINGCONN;
+ if (strict || m->desc.port != 0)
+ return PJMEDIA_SDP_EMISSINGCONN;
}
/* Verify payload type. */
@@ -1505,6 +1514,7 @@ PJ_DEF(pj_status_t) pjmedia_sdp_validate(const pjmedia_sdp_session *sdp)
return PJ_SUCCESS;
}
+
PJ_DEF(pj_status_t) pjmedia_sdp_transport_cmp( const pj_str_t *t1,
const pj_str_t *t2)
{
diff --git a/pjmedia/src/pjmedia/sdp_neg.c b/pjmedia/src/pjmedia/sdp_neg.c
index 09b893ef..217bd176 100644
--- a/pjmedia/src/pjmedia/sdp_neg.c
+++ b/pjmedia/src/pjmedia/sdp_neg.c
@@ -138,7 +138,7 @@ PJ_DEF(pj_status_t) pjmedia_sdp_neg_create_w_remote_offer(pj_pool_t *pool,
*p_neg = NULL;
/* Validate remote offer and initial answer */
- status = pjmedia_sdp_validate(remote);
+ status = pjmedia_sdp_validate2(remote, PJ_FALSE);
if (status != PJ_SUCCESS)
return status;