Commit e6a19418 authored by Fabrice Bellet's avatar Fabrice Bellet Committed by Olivier Crête
Browse files

conncheck: test incoming checks on candidate base address

The candidate may be a newly discovered peer reflexive one,
or a server reflexive initial candidate, where address and
base address differ. Early incoming checks are received on
the base address. These incoming checks may accumulate if remote
credentials arrive with a delay.
parent f482a02c
...@@ -1727,8 +1727,14 @@ conn_check_remote_candidates_set(NiceAgent *agent, NiceStream *stream, ...@@ -1727,8 +1727,14 @@ conn_check_remote_candidates_set(NiceAgent *agent, NiceStream *stream,
if (nice_address_equal (&rcand->addr, &icheck->from)) { if (nice_address_equal (&rcand->addr, &icheck->from)) {
for (m = component->local_candidates; m; m = m->next) { for (m = component->local_candidates; m; m = m->next) {
NiceCandidate *cand = m->data; NiceCandidate *cand = m->data;
NiceAddress *addr;
if (nice_address_equal (&cand->addr, &icheck->local_socket->addr)) { if (cand->type == NICE_CANDIDATE_TYPE_RELAYED)
addr = &cand->addr;
else
addr = &cand->base_addr;
if (nice_address_equal (addr, &icheck->local_socket->addr)) {
lcand = cand; lcand = cand;
break; break;
} }
......
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