diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-03-17 16:05:35 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-03-17 16:05:35 +0000 |
commit | 0e602ccdd09d4e09556b93dbdd63841865d08388 (patch) | |
tree | 469548248ae7c70d6e2c7284b5ac2725efd0b95c /pjmedia | |
parent | df316c166181fd58ebc4efad3d4a2f5bfdf86e9e (diff) |
More ticket #479: bug in pjmedia_transport_get_info(), the info should be initialized by caller
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1873 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/include/pjmedia/transport.h | 23 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/transport_ice.c | 2 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/transport_srtp.c | 6 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/transport_udp.c | 1 |
4 files changed, 19 insertions, 13 deletions
diff --git a/pjmedia/include/pjmedia/transport.h b/pjmedia/include/pjmedia/transport.h index fcf120da..19869a9b 100644 --- a/pjmedia/include/pjmedia/transport.h +++ b/pjmedia/include/pjmedia/transport.h @@ -405,7 +405,7 @@ struct pjmedia_transport }; /** - * This structure describes buffer storage of transport specific info. + * This structure describes storage buffer of transport specific info. * The actual transport specific info contents will be defined by transport * implementation. Note that some transport implementations do not need to * provide specific info, since the general socket info is enough. @@ -456,10 +456,23 @@ struct pjmedia_transport_info /** - * Get media socket info from the specified transport. The socket info - * contains information about the local address of this transport, and - * would be needed for example to fill in the "c=" and "m=" line of local - * SDP. + * Initialize transport info. + * + * @param info Transport info to be initialized. + */ +PJ_INLINE(void) pjmedia_transport_info_init(pjmedia_transport_info *info) +{ + pj_bzero(&info->sock_info, sizeof(pjmedia_sock_info)); + info->sock_info.rtp_sock = info->sock_info.rtcp_sock = PJ_INVALID_SOCKET; + info->specific_info_cnt = 0; +} + + +/** + * Get media transport info from the specified transport and all underlying + * transports if any. The transport also contains information about socket info + * which describes the local address of the transport, and would be needed + * for example to fill in the "c=" and "m=" line of local SDP. * * @param tp The transport. * @param info Media socket info to be initialized. diff --git a/pjmedia/src/pjmedia/transport_ice.c b/pjmedia/src/pjmedia/transport_ice.c index 0534ad4b..59408dd8 100644 --- a/pjmedia/src/pjmedia/transport_ice.c +++ b/pjmedia/src/pjmedia/transport_ice.c @@ -700,8 +700,6 @@ static pj_status_t transport_get_info(pjmedia_transport *tp, sizeof(pj_sockaddr_in)); } - info->specific_info_cnt = 0; - return PJ_SUCCESS; } diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c index 3bd95c88..6cc3881a 100644 --- a/pjmedia/src/pjmedia/transport_srtp.c +++ b/pjmedia/src/pjmedia/transport_srtp.c @@ -564,10 +564,6 @@ static pj_status_t transport_get_info(pjmedia_transport *tp, PJ_ASSERT_RETURN(sizeof(pjmedia_srtp_info) <= PJMEDIA_TRANSPORT_SPECIFIC_INFO_MAXSIZE, PJ_ENOMEM); - status = pjmedia_transport_get_info(srtp->real_tp, info); - if (status != PJ_SUCCESS) - return status; - srtp_info.active = srtp->session_inited; srtp_info.rx_policy = srtp->rx_policy; srtp_info.tx_policy = srtp->tx_policy; @@ -578,7 +574,7 @@ static pj_status_t transport_get_info(pjmedia_transport *tp, pj_memcpy(&info->spc_info[spc_info_idx].buffer, &srtp_info, sizeof(srtp_info)); - return PJ_SUCCESS; + return pjmedia_transport_get_info(srtp->real_tp, info); } static pj_status_t transport_attach(pjmedia_transport *tp, diff --git a/pjmedia/src/pjmedia/transport_udp.c b/pjmedia/src/pjmedia/transport_udp.c index f4e12cd1..c671d0f7 100644 --- a/pjmedia/src/pjmedia/transport_udp.c +++ b/pjmedia/src/pjmedia/transport_udp.c @@ -593,7 +593,6 @@ static pj_status_t transport_get_info(pjmedia_transport *tp, info->sock_info.rtp_addr_name = udp->rtp_addr_name; info->sock_info.rtcp_sock = udp->rtcp_sock; info->sock_info.rtcp_addr_name = udp->rtcp_addr_name; - info->specific_info_cnt = 0; return PJ_SUCCESS; } |