Index: webrtc/p2p/base/port.cc |
diff --git a/webrtc/p2p/base/port.cc b/webrtc/p2p/base/port.cc |
index 9dd5c83fed77a53d38fea670fb92d6dc7c141012..7993cc02bc082819340ca1e80b974dd91716f995 100644 |
--- a/webrtc/p2p/base/port.cc |
+++ b/webrtc/p2p/base/port.cc |
@@ -120,12 +120,12 @@ const char TCPTYPE_SIMOPEN_STR[] = "so"; |
// then the foundation will be different. Two candidate pairs with |
// the same foundation pairs are likely to have similar network |
// characteristics. Foundations are used in the frozen algorithm. |
-static std::string ComputeFoundation( |
- const std::string& type, |
- const std::string& protocol, |
- const rtc::SocketAddress& base_address) { |
+static std::string ComputeFoundation(const std::string& type, |
+ const std::string& protocol, |
+ const std::string& relay_protocol, |
+ const rtc::SocketAddress& base_address) { |
std::ostringstream ost; |
- ost << type << base_address.ipaddr().ToString() << protocol; |
+ ost << type << base_address.ipaddr().ToString() << protocol << relay_protocol; |
return rtc::ToString<uint32_t>(rtc::ComputeCrc32(ost.str())); |
} |
@@ -252,7 +252,8 @@ void Port::AddAddress(const rtc::SocketAddress& address, |
c.set_network_type(network_->type()); |
c.set_generation(generation_); |
c.set_related_address(related_address); |
- c.set_foundation(ComputeFoundation(type, protocol, base_address)); |
+ c.set_foundation( |
+ ComputeFoundation(type, protocol, relay_protocol, base_address)); |
candidates_.push_back(c); |
SignalCandidateReady(this, c); |
@@ -1389,9 +1390,9 @@ void Connection::MaybeAddPrflxCandidate(ConnectionRequest* request, |
new_local_candidate.set_network_name(local_candidate().network_name()); |
new_local_candidate.set_network_type(local_candidate().network_type()); |
new_local_candidate.set_related_address(local_candidate().address()); |
- new_local_candidate.set_foundation( |
- ComputeFoundation(PRFLX_PORT_TYPE, local_candidate().protocol(), |
- local_candidate().address())); |
+ new_local_candidate.set_foundation(ComputeFoundation( |
+ PRFLX_PORT_TYPE, local_candidate().protocol(), |
+ local_candidate().relay_protocol(), local_candidate().address())); |
// Change the local candidate of this Connection to the new prflx candidate. |
local_candidate_index_ = port_->AddPrflxCandidate(new_local_candidate); |