Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Unified Diff: webrtc/api/webrtcsdp.cc

Issue 1815473002: Add 16-bit network id to the candidate signaling. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Remove the old NETWORK_COST attribute. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | webrtc/api/webrtcsdp_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/api/webrtcsdp.cc
diff --git a/webrtc/api/webrtcsdp.cc b/webrtc/api/webrtcsdp.cc
index 4a296d9ce2e28a274377e3ca79e727f45c5b6e91..93d4acc6c3fad5fd2e2612ff22af02de2554baeb 100644
--- a/webrtc/api/webrtcsdp.cc
+++ b/webrtc/api/webrtcsdp.cc
@@ -127,6 +127,7 @@ static const char kAttributeCandidateRport[] = "rport";
static const char kAttributeCandidateUfrag[] = "ufrag";
static const char kAttributeCandidatePwd[] = "pwd";
static const char kAttributeCandidateGeneration[] = "generation";
+static const char kAttributeCandidateNetworkId[] = "network-id";
static const char kAttributeCandidateNetworkCost[] = "network-cost";
static const char kAttributeFingerprint[] = "fingerprint";
static const char kAttributeSetup[] = "setup";
@@ -1092,7 +1093,8 @@ bool ParseCandidate(const std::string& message, Candidate* candidate,
std::string username;
std::string password;
uint32_t generation = 0;
- uint32_t network_cost = 0;
+ uint16_t network_id = 0;
+ uint16_t network_cost = 0;
for (size_t i = current_position; i + 1 < fields.size(); ++i) {
// RFC 5245
// *(SP extension-att-name SP extension-att-value)
@@ -1104,10 +1106,15 @@ bool ParseCandidate(const std::string& message, Candidate* candidate,
username = fields[++i];
} else if (fields[i] == kAttributeCandidatePwd) {
password = fields[++i];
+ } else if (fields[i] == kAttributeCandidateNetworkId) {
+ if (!GetValueFromString(first_line, fields[++i], &network_id, error)) {
+ return false;
+ }
} else if (fields[i] == kAttributeCandidateNetworkCost) {
if (!GetValueFromString(first_line, fields[++i], &network_cost, error)) {
return false;
}
+ network_cost = std::min(network_cost, cricket::kMaxNetworkCost);
} else {
// Skip the unknown extension.
++i;
@@ -1116,10 +1123,9 @@ bool ParseCandidate(const std::string& message, Candidate* candidate,
*candidate = Candidate(component_id, cricket::ProtoToString(protocol),
address, priority, username, password, candidate_type,
- generation, foundation);
+ generation, foundation, network_id, network_cost);
candidate->set_related_address(related_address);
candidate->set_tcptype(tcptype);
- candidate->set_network_cost(std::min(network_cost, cricket::kMaxNetworkCost));
return true;
}
@@ -1814,6 +1820,9 @@ void BuildCandidate(const std::vector<Candidate>& candidates,
if (include_ufrag && !it->username().empty()) {
os << " " << kAttributeCandidateUfrag << " " << it->username();
}
+ if (it->network_id() > 0) {
+ os << " " << kAttributeCandidateNetworkId << " " << it->network_id();
+ }
if (it->network_cost() > 0) {
os << " " << kAttributeCandidateNetworkCost << " " << it->network_cost();
}
« no previous file with comments | « no previous file | webrtc/api/webrtcsdp_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698