if (nice_address_equal (&c->base_addr, &candidate->base_addr) &&
nice_address_equal (&c->addr, &candidate->addr) &&
c->transport == candidate->transport) {
- nice_debug ("Candidate %p (component-id %u) redundant, ignoring.", candidate, component->id);
+ nice_debug ("Agent %p : s%d/c%d : cand %p redundant, ignoring.",
+ agent, stream_id, component->id, candidate);
+ return FALSE;
+ }
+
+ if (c->type == NICE_CANDIDATE_TYPE_RELAYED &&
+ candidate->type == NICE_CANDIDATE_TYPE_RELAYED &&
+ nice_address_equal_no_port (&c->addr, &candidate->addr)) {
+ nice_debug ("Agent %p : s%d/c%d : relay cand %p redundant, ignoring.",
+ agent, stream_id, component->id, candidate);
+ return FALSE;
+ }
+
+ if (c->type == NICE_CANDIDATE_TYPE_SERVER_REFLEXIVE &&
+ candidate->type == NICE_CANDIDATE_TYPE_SERVER_REFLEXIVE &&
+ nice_address_equal_no_port (&c->addr, &candidate->addr)) {
+ nice_debug ("Agent %p : s%d/c%d : srflx cand %p redundant, ignoring.",
+ agent, stream_id, component->id, candidate);
return FALSE;
}
}