Commit 425f534a authored by Youness Alaoui's avatar Youness Alaoui Committed by Olivier Crête

Make OC2007 relay candidates use TCP_ACTIVE and TCP_PASSIVE candidate types when using TCP TURN

parent 99d6f661
......@@ -2501,6 +2501,36 @@ static gboolean priv_map_reply_to_relay_request (NiceAgent *agent, StunMessage *
}
nice_address_set_from_sockaddr (&niceaddr, &relayaddr.addr);
if ((agent->compatibility == NICE_COMPATIBILITY_OC2007 ||
agent->compatibility == NICE_COMPATIBILITY_OC2007R2) &&
(d->turn->type == NICE_RELAY_TYPE_TURN_TCP ||
d->turn->type == NICE_RELAY_TYPE_TURN_TLS)) {
/* [MS-TURN] : The transport address has the same transport protocol
* over which the Allocate request was received; a request that is
* received over TCP returns a TCP allocated transport address.*/
relay_cand = discovery_add_relay_candidate (
d->agent,
d->stream->id,
d->component->id,
&niceaddr,
NICE_CANDIDATE_TRANSPORT_TCP_ACTIVE,
d->nicesock,
d->turn);
if (relay_cand) {
nice_turn_socket_set_ms_realm(relay_cand->sockptr, &d->stun_message);
nice_turn_socket_set_ms_connection_id(relay_cand->sockptr, resp);
}
relay_cand = discovery_add_relay_candidate (
d->agent,
d->stream->id,
d->component->id,
&niceaddr,
NICE_CANDIDATE_TRANSPORT_TCP_PASSIVE,
d->nicesock,
d->turn);
} else {
relay_cand = discovery_add_relay_candidate (
d->agent,
d->stream->id,
......@@ -2509,6 +2539,7 @@ static gboolean priv_map_reply_to_relay_request (NiceAgent *agent, StunMessage *
NICE_CANDIDATE_TRANSPORT_UDP,
d->nicesock,
d->turn);
}
if (relay_cand) {
if (agent->compatibility == NICE_COMPATIBILITY_OC2007 ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment