Index: webrtc/p2p/base/port.cc |
diff --git a/webrtc/p2p/base/port.cc b/webrtc/p2p/base/port.cc |
index d26a9302a8af7ba55bc98b3a979a331a6337ec71..0238aa2ba207ac7b4478f2ad40797d562c1bcea4 100644 |
--- a/webrtc/p2p/base/port.cc |
+++ b/webrtc/p2p/base/port.cc |
@@ -1298,12 +1298,22 @@ void Connection::HandleRoleConflictFromPeer() { |
port_->SignalRoleConflict(port_); |
} |
-void Connection::MaybeSetRemoteIceCredentials(const std::string& ice_ufrag, |
- const std::string& ice_pwd) { |
+void Connection::MaybeSetRemoteIceCredentialsAndGeneration( |
+ const std::string& ice_ufrag, |
+ const std::string& ice_pwd, |
+ int generation) { |
if (remote_candidate_.username() == ice_ufrag && |
remote_candidate_.password().empty()) { |
remote_candidate_.set_password(ice_pwd); |
} |
+ // TODO(deadbeef): A value of '0' for the generation is used for both |
+ // generation 0 and "generation unknown". It should be changed to an |
+ // rtc::Optional to fix this. |
+ if (remote_candidate_.username() == ice_ufrag && |
+ remote_candidate_.password() == ice_pwd && |
+ remote_candidate_.generation() == 0) { |
+ remote_candidate_.set_generation(generation); |
+ } |
} |
void Connection::MaybeUpdatePeerReflexiveCandidate( |