Index: webrtc/p2p/base/port.h |
diff --git a/webrtc/p2p/base/port.h b/webrtc/p2p/base/port.h |
index 7c4468d2e6b7d112abf7a4b93f41b9645e5f86c3..709bd26b178c0b689148c9a8b05bd21e4bae4fc2 100644 |
--- a/webrtc/p2p/base/port.h |
+++ b/webrtc/p2p/base/port.h |
@@ -108,6 +108,18 @@ struct ProtocolAddress { |
: address(a), proto(p), secure(sec) { } |
}; |
+struct IceParameters { |
+ std::string ufrag; |
+ std::string pwd; |
+ IceParameters(const std::string& ice_ufrag, const std::string& ice_pwd) |
+ : ufrag(ice_ufrag), pwd(ice_pwd) {} |
+ |
+ bool operator==(const IceParameters& other) { |
+ return ufrag == other.ufrag && pwd == other.pwd; |
+ } |
+ bool operator!=(const IceParameters& other) { return !(*this == other); } |
+}; |
+ |
typedef std::set<rtc::SocketAddress> ServerAddresses; |
// Represents a local communication mechanism that can be used to create |
@@ -574,6 +586,14 @@ class Connection : public CandidatePairInterface, |
uint32_t ComputeNetworkCost() const; |
+ // Update the ICE password and/or generation of the remote candidate if a |
+ // ufrag in |remote_ice_parameters| matches the candidate's ufrag, and the |
+ // candidate's password and/or ufrag has not been set. |
+ // |remote_ice_parameters| should be a list of known ICE parameters ordered |
+ // by generation. |
+ void MaybeSetRemoteIceCredentialsAndGeneration( |
+ const std::vector<IceParameters>& remote_ice_parameters); |
+ |
// Update the ICE password of the remote candidate if |ice_ufrag| matches |
// the candidate's ufrag, and the candidate's passwrod has not been set. |
void MaybeSetRemoteIceCredentials(const std::string& ice_ufrag, |