Parse SDP connection info with multicast address (#3529)
This commit is contained in:
parent
dc4778ed8a
commit
d6d67b8ac6
|
@ -383,6 +383,8 @@ struct pjmedia_sdp_conn
|
|||
pj_str_t net_type; /**< Network type ("IN"). */
|
||||
pj_str_t addr_type; /**< Address type ("IP4", "IP6"). */
|
||||
pj_str_t addr; /**< The address. */
|
||||
pj_uint8_t ttl; /**< Multicast address TTL */
|
||||
pj_uint8_t no_addr; /**< Multicast number of addresses */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1151,7 +1151,28 @@ static void parse_connection_info(pj_scanner *scanner, pjmedia_sdp_conn *conn,
|
|||
|
||||
/* address. */
|
||||
pj_scan_get_until_chr(scanner, "/ \t\r\n", &conn->addr);
|
||||
PJ_TODO(PARSE_SDP_CONN_ADDRESS_SUBFIELDS);
|
||||
/* Parse multicast details, if any. */
|
||||
if (*scanner->curptr == '/') {
|
||||
pj_str_t str;
|
||||
unsigned long ul;
|
||||
|
||||
pj_scan_get_until_chr(scanner, "/ \t\r\n", &str);
|
||||
if (*scanner->curptr == '/') {
|
||||
if ((pj_strtoul3(&str, &ul, 10) != PJ_SUCCESS) || ul > 255) {
|
||||
on_scanner_error(scanner);
|
||||
return;
|
||||
}
|
||||
|
||||
conn->ttl = (pj_uint8_t)ul;
|
||||
}
|
||||
|
||||
if ((pj_strtoul3(&str, &ul, 10) != PJ_SUCCESS) || ul > 255) {
|
||||
on_scanner_error(scanner);
|
||||
return;
|
||||
}
|
||||
conn->no_addr = (pj_uint8_t)ul;
|
||||
|
||||
}
|
||||
|
||||
/* We've got what we're looking for, skip anything until newline */
|
||||
pj_scan_skip_line(scanner);
|
||||
|
|
Loading…
Reference in New Issue