| 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,
 | 
| 
 |