sdp: ignore legacy sctpmap line
and reorganise the parsing Bug: None Change-Id: I21f08297429a0cc0265da00daa681d934fc43d66 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196643 Commit-Queue: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32843}
This commit is contained in:

committed by
Commit Bot

parent
ce42cbeba8
commit
4793e9e3ce
@ -3128,38 +3128,44 @@ bool ParseContent(const std::string& message,
|
||||
if (!ParseDtlsSetup(line, &(transport->connection_role), error)) {
|
||||
return false;
|
||||
}
|
||||
} else if (cricket::IsDtlsSctp(protocol) &&
|
||||
HasAttribute(line, kAttributeSctpPort)) {
|
||||
if (media_type != cricket::MEDIA_TYPE_DATA) {
|
||||
return ParseFailed(
|
||||
line, "sctp-port attribute found in non-data media description.",
|
||||
error);
|
||||
} else if (cricket::IsDtlsSctp(protocol)) {
|
||||
//
|
||||
// SCTP specific attributes
|
||||
//
|
||||
if (HasAttribute(line, kAttributeSctpPort)) {
|
||||
if (media_type != cricket::MEDIA_TYPE_DATA) {
|
||||
return ParseFailed(
|
||||
line, "sctp-port attribute found in non-data media description.",
|
||||
error);
|
||||
}
|
||||
if (media_desc->as_sctp()->use_sctpmap()) {
|
||||
return ParseFailed(
|
||||
line, "sctp-port attribute can't be used with sctpmap.", error);
|
||||
}
|
||||
int sctp_port;
|
||||
if (!ParseSctpPort(line, &sctp_port, error)) {
|
||||
return false;
|
||||
}
|
||||
media_desc->as_sctp()->set_port(sctp_port);
|
||||
} else if (HasAttribute(line, kAttributeMaxMessageSize)) {
|
||||
if (media_type != cricket::MEDIA_TYPE_DATA) {
|
||||
return ParseFailed(
|
||||
line,
|
||||
"max-message-size attribute found in non-data media description.",
|
||||
error);
|
||||
}
|
||||
int max_message_size;
|
||||
if (!ParseSctpMaxMessageSize(line, &max_message_size, error)) {
|
||||
return false;
|
||||
}
|
||||
media_desc->as_sctp()->set_max_message_size(max_message_size);
|
||||
} else if (HasAttribute(line, kAttributeSctpmap)) {
|
||||
// Ignore a=sctpmap: from early versions of draft-ietf-mmusic-sctp-sdp
|
||||
continue;
|
||||
}
|
||||
if (media_desc->as_sctp()->use_sctpmap()) {
|
||||
return ParseFailed(
|
||||
line, "sctp-port attribute can't be used with sctpmap.", error);
|
||||
}
|
||||
int sctp_port;
|
||||
if (!ParseSctpPort(line, &sctp_port, error)) {
|
||||
return false;
|
||||
}
|
||||
media_desc->as_sctp()->set_port(sctp_port);
|
||||
} else if (cricket::IsDtlsSctp(protocol) &&
|
||||
HasAttribute(line, kAttributeMaxMessageSize)) {
|
||||
if (media_type != cricket::MEDIA_TYPE_DATA) {
|
||||
return ParseFailed(
|
||||
line,
|
||||
"max-message-size attribute found in non-data media description.",
|
||||
error);
|
||||
}
|
||||
int max_message_size;
|
||||
if (!ParseSctpMaxMessageSize(line, &max_message_size, error)) {
|
||||
return false;
|
||||
}
|
||||
media_desc->as_sctp()->set_max_message_size(max_message_size);
|
||||
} else if (cricket::IsRtpProtocol(protocol)) {
|
||||
//
|
||||
// RTP specific attrubtes
|
||||
// RTP specific attributes
|
||||
//
|
||||
if (HasAttribute(line, kAttributeRtcpMux)) {
|
||||
media_desc->set_rtcp_mux(true);
|
||||
|
Reference in New Issue
Block a user