From c1fac09695b25a676f33024cde2a8d956bb4166e Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Thu, 21 Feb 2013 20:49:19 +0000 Subject: 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 --- pjmedia/src/pjmedia/sdp.c | 12 +++++++++++- pjmedia/src/pjmedia/sdp_neg.c | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'pjmedia/src') 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 @@ -1422,6 +1422,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; -- cgit v1.2.3