diff options
author | Youness Alaoui <youness.alaoui@collabora.co.uk> | 2014-04-08 21:42:02 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@ocrete.ca> | 2014-05-15 09:44:00 -0400 |
commit | 99d6f661550754c09bd1299f0139aad53af262cf (patch) | |
tree | 6f8557f6974e501f0daba52e1a2b6c47182d009a /agent/conncheck.c | |
parent | 72dda7df13e3b179f6d37c55a2340a082c86c06b (diff) | |
download | libnice-99d6f661550754c09bd1299f0139aad53af262cf.tar.gz |
Do not add server-reflexive from TURN if using a TCP connection
Diffstat (limited to 'agent/conncheck.c')
-rw-r--r-- | agent/conncheck.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/agent/conncheck.c b/agent/conncheck.c index 901d16b..36ed65e 100644 --- a/agent/conncheck.c +++ b/agent/conncheck.c @@ -2484,14 +2484,20 @@ static gboolean priv_map_reply_to_relay_request (NiceAgent *agent, StunMessage * /* We also received our mapped address */ nice_address_set_from_sockaddr (&niceaddr, &sockaddr.addr); - discovery_add_server_reflexive_candidate ( - d->agent, - d->stream->id, - d->component->id, - &niceaddr, - NICE_CANDIDATE_TRANSPORT_UDP, - d->nicesock, - FALSE); + /* TCP or TLS TURNS means the server-reflexive address was + * on a TCP connection, which cannot be used for server-reflexive + * discovery of candidates. + */ + if (d->turn->type == NICE_RELAY_TYPE_TURN_UDP) { + discovery_add_server_reflexive_candidate ( + d->agent, + d->stream->id, + d->component->id, + &niceaddr, + NICE_CANDIDATE_TRANSPORT_UDP, + d->nicesock, + FALSE); + } } nice_address_set_from_sockaddr (&niceaddr, &relayaddr.addr); |