mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
Bug 1224845 - close sockets on errors and don't connect to IPv4 TURN TCP from IPv6 sockets. r=jesup
--HG-- extra : transplant_source : %9Eg%1E%E0%B9%0E%5Eh%3EJK8uk%91s%EC%11I%17
This commit is contained in:
parent
b25b48552b
commit
59d2466489
@ -359,6 +359,9 @@ void NrSocket::OnSocketReady(PRFileDesc *fd, int16_t outflags) {
|
||||
fire_callback(NR_ASYNC_WAIT_READ);
|
||||
if (outflags & PR_POLL_WRITE & poll_flags())
|
||||
fire_callback(NR_ASYNC_WAIT_WRITE);
|
||||
if (outflags & (PR_POLL_ERR | PR_POLL_NVAL | PR_POLL_HUP))
|
||||
// TODO: Bug 946423: how do we notify the upper layers about this?
|
||||
close();
|
||||
}
|
||||
|
||||
void NrSocket::OnSocketDetached(PRFileDesc *fd) {
|
||||
|
@ -490,6 +490,14 @@ static int nr_ice_component_initialize_tcp(struct nr_ice_ctx_ *ctx,nr_ice_compon
|
||||
if (ctx->turn_servers[j].turn_server.transport != IPPROTO_TCP)
|
||||
continue;
|
||||
|
||||
if (ctx->turn_servers[j].turn_server.type == NR_ICE_STUN_SERVER_TYPE_ADDR &&
|
||||
nr_transport_addr_cmp(&ctx->turn_servers[j].turn_server.u.addr,
|
||||
&addrs[i].addr,
|
||||
NR_TRANSPORT_ADDR_CMP_MODE_VERSION)) {
|
||||
r_log(LOG_ICE,LOG_INFO,"ICE(%s): Skipping TURN server because of IP version mis-match (%u - %u)",ctx->label,addrs[i].addr.ip_version,ctx->turn_servers[j].turn_server.u.addr.ip_version);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!ice_tcp_disabled) {
|
||||
/* Use TURN server to get srflx candidates */
|
||||
if(r=nr_ice_candidate_create(ctx,component,
|
||||
|
Loading…
Reference in New Issue
Block a user