pjsua_media_transports_create fails when bound_addr set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
 
Function pjsua_media_transports_create fails when called with a
pjsua_transport_config in which bound_addr is set to the IP-address of a
local interface.

 

I am using release 0.8.0 without ICE.

 

It appears that the bound_addr is converted twice from host byte order
to network byte order:

The first conversion is in create_rtp_rtcp_sock calling  via
pj_sockaddr_in_set_str_addr (calling pj_inet_addr  etc.)

The second conversion is in create_rtp_rtcp_sock calling pj_sock_bind_in
(calling pj_htonl).



Proposed solution 

I propose the following solution (copied from create_sip_udp_sock
calling pj_sock_bind_in) :

 

In pjsua_media.c - create_rtp_rtcp_sock :

 

Replace:

259   status = pj_sock_bind_in(sock[0], bound_addr.sin_addr.s_addr, 

260                     next_rtp_port);

.

.

275:  status = pj_sock_bind_in(sock[1], bound_addr.sin_addr.s_addr, 

276:                    (pj_uint16_t)(next_rtp_port+1));

 

By:

259   status = pj_sock_bind_in(sock[0],
pj_ntohl(bound_addr.sin_addr.s_addr), 

260                     next_rtp_port);

.

.

275:  status = pj_sock_bind_in(sock[1],
pj_ntohl(bound_addr.sin_addr.s_addr),

276:                    (pj_uint16_t)(next_rtp_port+1));

 

 

Regards,

 

Arie Velthoen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20071207/35998abc/attachment.html 


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux