1
0
mirror of https://github.com/coturn/coturn.git synced 2025-10-28 21:41:29 +01:00

rtcp ports fixed

This commit is contained in:
mom040267 2014-10-16 08:15:34 +00:00
parent 7be2848ea8
commit 4a9cbf732e
3 changed files with 19 additions and 7 deletions

View File

@ -1,7 +1,8 @@
10/14/2014 Oleg Moskalenko <mom040267@gmail.com> 10/16/2014 Oleg Moskalenko <mom040267@gmail.com>
Version 4.2.1.4 'Monza': Version 4.2.1.4 'Monza':
- Code cleaning. - Code cleaning.
- TCP/TLS tests extended. - TCP/TLS tests extended.
- relay RTCP sockets ports allocation fixed.
10/05/2014 Oleg Moskalenko <mom040267@gmail.com> 10/05/2014 Oleg Moskalenko <mom040267@gmail.com>
Version 4.2.1.2 'Monza': Version 4.2.1.2 'Monza':

View File

@ -294,7 +294,7 @@ fi
%{_includedir}/turn/client/TurnMsgLib.h %{_includedir}/turn/client/TurnMsgLib.h
%changelog %changelog
* Mon Oct 13 2014 Oleg Moskalenko <mom040267@gmail.com> * Thu Oct 16 2014 Oleg Moskalenko <mom040267@gmail.com>
- Sync to 4.2.1.4 - Sync to 4.2.1.4
* Sun Oct 05 2014 Oleg Moskalenko <mom040267@gmail.com> * Sun Oct 05 2014 Oleg Moskalenko <mom040267@gmail.com>
- Sync to 4.2.1.2 - Sync to 4.2.1.2

View File

@ -1166,12 +1166,17 @@ int create_relay_ioa_sockets(ioa_engine_handle e,
(transport == STUN_ATTRIBUTE_TRANSPORT_TCP_VALUE) ? TCP_SOCKET : UDP_SOCKET, (transport == STUN_ATTRIBUTE_TRANSPORT_TCP_VALUE) ? TCP_SOCKET : UDP_SOCKET,
RELAY_SOCKET); RELAY_SOCKET);
if (*rtp_s == NULL) { if (*rtp_s == NULL) {
if (rtcp_s) int rtcp_bound = 0;
if (rtcp_s && *rtcp_s) {
rtcp_bound = (*rtcp_s)->bound;
IOA_CLOSE_SOCKET(*rtcp_s); IOA_CLOSE_SOCKET(*rtcp_s);
}
addr_set_port(&local_addr, port); addr_set_port(&local_addr, port);
turnipports_release(tp, transport, &local_addr); turnipports_release(tp, transport, &local_addr);
if (rtcp_port >= 0) if (rtcp_port >= 0 && !rtcp_bound) {
addr_set_port(&rtcp_local_addr, rtcp_port);
turnipports_release(tp, transport, &rtcp_local_addr); turnipports_release(tp, transport, &rtcp_local_addr);
}
perror("socket"); perror("socket");
return -1; return -1;
} }
@ -1184,12 +1189,17 @@ int create_relay_ioa_sockets(ioa_engine_handle e,
break; break;
} else { } else {
IOA_CLOSE_SOCKET(*rtp_s); IOA_CLOSE_SOCKET(*rtp_s);
if (rtcp_s) int rtcp_bound = 0;
if (rtcp_s && *rtcp_s) {
rtcp_bound = (*rtcp_s)->bound;
IOA_CLOSE_SOCKET(*rtcp_s); IOA_CLOSE_SOCKET(*rtcp_s);
}
addr_set_port(&local_addr, port); addr_set_port(&local_addr, port);
turnipports_release(tp, transport, &local_addr); turnipports_release(tp, transport, &local_addr);
if (rtcp_port >= 0) if (rtcp_port >= 0 && !rtcp_bound) {
addr_set_port(&rtcp_local_addr, rtcp_port);
turnipports_release(tp, transport, &rtcp_local_addr); turnipports_release(tp, transport, &rtcp_local_addr);
}
rtcp_port = -1; rtcp_port = -1;
} }
} }
@ -1638,7 +1648,8 @@ void close_ioa_socket(ioa_socket_handle s)
ioa_network_buffer_delete(s->e, s->defer_nbh); ioa_network_buffer_delete(s->e, s->defer_nbh);
if(s->bound && s->e && s->e->tp) { if(s->bound && s->e && s->e->tp &&
((s->sat == RELAY_SOCKET)||(s->sat == RELAY_RTCP_SOCKET))) {
turnipports_release(s->e->tp, turnipports_release(s->e->tp,
((s->st == TCP_SOCKET) ? STUN_ATTRIBUTE_TRANSPORT_TCP_VALUE : STUN_ATTRIBUTE_TRANSPORT_UDP_VALUE), ((s->st == TCP_SOCKET) ? STUN_ATTRIBUTE_TRANSPORT_TCP_VALUE : STUN_ATTRIBUTE_TRANSPORT_UDP_VALUE),
&(s->local_addr)); &(s->local_addr));