diff --git a/daemon/sdp.c b/daemon/sdp.c index 84e71241e..21af6d49f 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -84,7 +84,9 @@ struct attribute_candidate { str port_str; str typ_str; str type_str; + str raddr_str; str related_address_str; + str rport_str; str related_port_str; struct ice_candidate cand_parsed; @@ -618,6 +620,16 @@ static int parse_attribute_candidate(struct sdp_attribute *output) { if (!ice_has_related(c->cand_parsed.type)) goto done; + EXTRACT_TOKEN(u.candidate.raddr_str); + EXTRACT_TOKEN(u.candidate.related_address_str); + EXTRACT_TOKEN(u.candidate.rport_str); + EXTRACT_TOKEN(u.candidate.related_port_str); + + if (str_cmp(&c->raddr_str, "raddr")) + return -1; + if (str_cmp(&c->rport_str, "rport")) + return -1; + if (__parse_address(&c->cand_parsed.related_address, NULL, NULL, &c->related_address_str)) return 0;