Index: webrtc/p2p/base/p2ptransportchannel_unittest.cc |
diff --git a/webrtc/p2p/base/p2ptransportchannel_unittest.cc b/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
index ab064f1b86ff84d28069f2d3b9b6bbd94d92d329..e5e63a3fa0c23d212a17eccb3c8dd7915c4fa49f 100644 |
--- a/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
+++ b/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
@@ -33,14 +33,15 @@ |
#include "webrtc/base/thread.h" |
#include "webrtc/base/virtualsocketserver.h" |
-namespace { |
- |
+using cricket::kDefaultPortAllocatorFlags; |
+using cricket::kMinimumStepDelay; |
+using cricket::kDefaultStepDelay; |
+using cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET; |
+using cricket::ServerAddresses; |
+using cricket::MIN_PINGS_AT_WEAK_PING_INTERVAL; |
using rtc::SocketAddress; |
-// Default timeout for tests in this file. |
-// Should be large enough for slow buildbots to run the tests reliably. |
-static const int kDefaultTimeout = 10000; |
- |
+static const int kDefaultTimeout = 1000; |
static const int kOnlyLocalPorts = cricket::PORTALLOCATOR_DISABLE_STUN | |
cricket::PORTALLOCATOR_DISABLE_RELAY | |
cricket::PORTALLOCATOR_DISABLE_TCP; |
@@ -105,34 +106,15 @@ |
enum { MSG_ADD_CANDIDATES, MSG_REMOVE_CANDIDATES }; |
-cricket::IceConfig CreateIceConfig(int receiving_timeout, |
- bool gather_continually, |
- int backup_ping_interval = -1) { |
+static cricket::IceConfig CreateIceConfig(int receiving_timeout, |
+ bool gather_continually, |
+ int backup_ping_interval = -1) { |
cricket::IceConfig config; |
config.receiving_timeout = receiving_timeout; |
config.gather_continually = gather_continually; |
config.backup_connection_ping_interval = backup_ping_interval; |
return config; |
} |
- |
-cricket::Candidate CreateUdpCandidate(const std::string& type, |
- const std::string& ip, |
- int port, |
- int priority, |
- const std::string& ufrag = "") { |
- cricket::Candidate c; |
- c.set_address(rtc::SocketAddress(ip, port)); |
- c.set_component(cricket::ICE_CANDIDATE_COMPONENT_DEFAULT); |
- c.set_protocol(cricket::UDP_PROTOCOL_NAME); |
- c.set_priority(priority); |
- c.set_username(ufrag); |
- c.set_type(type); |
- return c; |
-} |
- |
-} // namespace { |
- |
-namespace cricket { |
// This test simulates 2 P2P endpoints that want to establish connectivity |
// with each other over various network topologies and conditions, which can be |
@@ -160,35 +142,27 @@ |
nss_(new rtc::NATSocketServer(vss_.get())), |
ss_(new rtc::FirewallSocketServer(nss_.get())), |
ss_scope_(ss_.get()), |
- stun_server_(TestStunServer::Create(main_, kStunAddr)), |
+ stun_server_(cricket::TestStunServer::Create(main_, kStunAddr)), |
turn_server_(main_, kTurnUdpIntAddr, kTurnUdpExtAddr), |
- relay_server_(main_, |
- kRelayUdpIntAddr, |
- kRelayUdpExtAddr, |
- kRelayTcpIntAddr, |
- kRelayTcpExtAddr, |
- kRelaySslTcpIntAddr, |
- kRelaySslTcpExtAddr), |
- socks_server1_(ss_.get(), |
- kSocksProxyAddrs[0], |
- ss_.get(), |
- kSocksProxyAddrs[0]), |
- socks_server2_(ss_.get(), |
- kSocksProxyAddrs[1], |
- ss_.get(), |
- kSocksProxyAddrs[1]), |
+ relay_server_(main_, kRelayUdpIntAddr, kRelayUdpExtAddr, |
+ kRelayTcpIntAddr, kRelayTcpExtAddr, |
+ kRelaySslTcpIntAddr, kRelaySslTcpExtAddr), |
+ socks_server1_(ss_.get(), kSocksProxyAddrs[0], |
+ ss_.get(), kSocksProxyAddrs[0]), |
+ socks_server2_(ss_.get(), kSocksProxyAddrs[1], |
+ ss_.get(), kSocksProxyAddrs[1]), |
force_relay_(false) { |
- ep1_.role_ = ICEROLE_CONTROLLING; |
- ep2_.role_ = ICEROLE_CONTROLLED; |
+ ep1_.role_ = cricket::ICEROLE_CONTROLLING; |
+ ep2_.role_ = cricket::ICEROLE_CONTROLLED; |
ServerAddresses stun_servers; |
stun_servers.insert(kStunAddr); |
- ep1_.allocator_.reset(new BasicPortAllocator( |
- &ep1_.network_manager_, stun_servers, kRelayUdpIntAddr, |
- kRelayTcpIntAddr, kRelaySslTcpIntAddr)); |
- ep2_.allocator_.reset(new BasicPortAllocator( |
- &ep2_.network_manager_, stun_servers, kRelayUdpIntAddr, |
- kRelayTcpIntAddr, kRelaySslTcpIntAddr)); |
+ ep1_.allocator_.reset(new cricket::BasicPortAllocator( |
+ &ep1_.network_manager_, |
+ stun_servers, kRelayUdpIntAddr, kRelayTcpIntAddr, kRelaySslTcpIntAddr)); |
+ ep2_.allocator_.reset(new cricket::BasicPortAllocator( |
+ &ep2_.network_manager_, |
+ stun_servers, kRelayUdpIntAddr, kRelayTcpIntAddr, kRelaySslTcpIntAddr)); |
} |
protected: |
@@ -242,28 +216,29 @@ |
std::string name_; // TODO - Currently not used. |
std::list<std::string> ch_packets_; |
- std::unique_ptr<P2PTransportChannel> ch_; |
+ std::unique_ptr<cricket::P2PTransportChannel> ch_; |
}; |
struct CandidatesData : public rtc::MessageData { |
- CandidatesData(TransportChannel* ch, const Candidate& c) |
+ CandidatesData(cricket::TransportChannel* ch, const cricket::Candidate& c) |
: channel(ch), candidates(1, c) {} |
- CandidatesData(TransportChannel* ch, const std::vector<Candidate>& cc) |
+ CandidatesData(cricket::TransportChannel* ch, |
+ const std::vector<cricket::Candidate>& cc) |
: channel(ch), candidates(cc) {} |
- TransportChannel* channel; |
- Candidates candidates; |
+ cricket::TransportChannel* channel; |
+ cricket::Candidates candidates; |
}; |
struct Endpoint { |
Endpoint() |
- : role_(ICEROLE_UNKNOWN), |
+ : role_(cricket::ICEROLE_UNKNOWN), |
tiebreaker_(0), |
role_conflict_(false), |
save_candidates_(false) {} |
- bool HasChannel(TransportChannel* ch) { |
+ bool HasChannel(cricket::TransportChannel* ch) { |
return (ch == cd1_.ch_.get() || ch == cd2_.ch_.get()); |
} |
- ChannelData* GetChannelData(TransportChannel* ch) { |
+ ChannelData* GetChannelData(cricket::TransportChannel* ch) { |
if (!HasChannel(ch)) return NULL; |
if (cd1_.ch_.get() == ch) |
return &cd1_; |
@@ -271,8 +246,8 @@ |
return &cd2_; |
} |
- void SetIceRole(IceRole role) { role_ = role; } |
- IceRole ice_role() { return role_; } |
+ void SetIceRole(cricket::IceRole role) { role_ = role; } |
+ cricket::IceRole ice_role() { return role_; } |
void SetIceTiebreaker(uint64_t tiebreaker) { tiebreaker_ = tiebreaker; } |
uint64_t GetIceTiebreaker() { return tiebreaker_; } |
void OnRoleConflict(bool role_conflict) { role_conflict_ = role_conflict; } |
@@ -285,18 +260,17 @@ |
} |
rtc::FakeNetworkManager network_manager_; |
- std::unique_ptr<BasicPortAllocator> allocator_; |
+ std::unique_ptr<cricket::BasicPortAllocator> allocator_; |
ChannelData cd1_; |
ChannelData cd2_; |
- IceRole role_; |
+ cricket::IceRole role_; |
uint64_t tiebreaker_; |
bool role_conflict_; |
bool save_candidates_; |
std::vector<CandidatesData*> saved_candidates_; |
- bool ready_to_send_ = false; |
}; |
- ChannelData* GetChannelData(TransportChannel* channel) { |
+ ChannelData* GetChannelData(cricket::TransportChannel* channel) { |
if (ep1_.HasChannel(channel)) |
return ep1_.GetChannelData(channel); |
else |
@@ -309,11 +283,13 @@ |
std::string ice_ufrag_ep2_cd1_ch = kIceUfrag[1]; |
std::string ice_pwd_ep2_cd1_ch = kIcePwd[1]; |
ep1_.cd1_.ch_.reset(CreateChannel( |
- 0, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep1_cd1_ch, |
- ice_pwd_ep1_cd1_ch, ice_ufrag_ep2_cd1_ch, ice_pwd_ep2_cd1_ch)); |
+ 0, cricket::ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ufrag_ep1_cd1_ch, ice_pwd_ep1_cd1_ch, |
+ ice_ufrag_ep2_cd1_ch, ice_pwd_ep2_cd1_ch)); |
ep2_.cd1_.ch_.reset(CreateChannel( |
- 1, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep2_cd1_ch, |
- ice_pwd_ep2_cd1_ch, ice_ufrag_ep1_cd1_ch, ice_pwd_ep1_cd1_ch)); |
+ 1, cricket::ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ufrag_ep2_cd1_ch, ice_pwd_ep2_cd1_ch, |
+ ice_ufrag_ep1_cd1_ch, ice_pwd_ep1_cd1_ch)); |
ep1_.cd1_.ch_->MaybeStartGathering(); |
ep2_.cd1_.ch_->MaybeStartGathering(); |
if (num == 2) { |
@@ -322,25 +298,26 @@ |
std::string ice_ufrag_ep2_cd2_ch = kIceUfrag[3]; |
std::string ice_pwd_ep2_cd2_ch = kIcePwd[3]; |
ep1_.cd2_.ch_.reset(CreateChannel( |
- 0, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep1_cd2_ch, |
- ice_pwd_ep1_cd2_ch, ice_ufrag_ep2_cd2_ch, ice_pwd_ep2_cd2_ch)); |
+ 0, cricket::ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ufrag_ep1_cd2_ch, ice_pwd_ep1_cd2_ch, |
+ ice_ufrag_ep2_cd2_ch, ice_pwd_ep2_cd2_ch)); |
ep2_.cd2_.ch_.reset(CreateChannel( |
- 1, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep2_cd2_ch, |
- ice_pwd_ep2_cd2_ch, ice_ufrag_ep1_cd2_ch, ice_pwd_ep1_cd2_ch)); |
+ 1, cricket::ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ufrag_ep2_cd2_ch, ice_pwd_ep2_cd2_ch, |
+ ice_ufrag_ep1_cd2_ch, ice_pwd_ep1_cd2_ch)); |
ep1_.cd2_.ch_->MaybeStartGathering(); |
ep2_.cd2_.ch_->MaybeStartGathering(); |
} |
} |
- P2PTransportChannel* CreateChannel(int endpoint, |
- int component, |
- const std::string& local_ice_ufrag, |
- const std::string& local_ice_pwd, |
- const std::string& remote_ice_ufrag, |
- const std::string& remote_ice_pwd) { |
- P2PTransportChannel* channel = new P2PTransportChannel( |
+ cricket::P2PTransportChannel* CreateChannel( |
+ int endpoint, |
+ int component, |
+ const std::string& local_ice_ufrag, |
+ const std::string& local_ice_pwd, |
+ const std::string& remote_ice_ufrag, |
+ const std::string& remote_ice_pwd) { |
+ cricket::P2PTransportChannel* channel = new cricket::P2PTransportChannel( |
"test content name", component, GetAllocator(endpoint)); |
- channel->SignalReadyToSend.connect( |
- this, &P2PTransportChannelTestBase::OnReadyToSend); |
channel->SignalCandidateGathered.connect( |
this, &P2PTransportChannelTestBase::OnCandidateGathered); |
channel->SignalCandidatesRemoved.connect( |
@@ -364,10 +341,10 @@ |
ep1_.cd2_.ch_.reset(); |
ep2_.cd2_.ch_.reset(); |
} |
- P2PTransportChannel* ep1_ch1() { return ep1_.cd1_.ch_.get(); } |
- P2PTransportChannel* ep1_ch2() { return ep1_.cd2_.ch_.get(); } |
- P2PTransportChannel* ep2_ch1() { return ep2_.cd1_.ch_.get(); } |
- P2PTransportChannel* ep2_ch2() { return ep2_.cd2_.ch_.get(); } |
+ cricket::P2PTransportChannel* ep1_ch1() { return ep1_.cd1_.ch_.get(); } |
+ cricket::P2PTransportChannel* ep1_ch2() { return ep1_.cd2_.ch_.get(); } |
+ cricket::P2PTransportChannel* ep2_ch1() { return ep2_.cd1_.ch_.get(); } |
+ cricket::P2PTransportChannel* ep2_ch2() { return ep2_.cd2_.ch_.get(); } |
// Common results. |
static const Result kLocalUdpToLocalUdp; |
@@ -395,7 +372,7 @@ |
return NULL; |
} |
} |
- PortAllocator* GetAllocator(int endpoint) { |
+ cricket::PortAllocator* GetAllocator(int endpoint) { |
return GetEndpoint(endpoint)->allocator_.get(); |
} |
void AddAddress(int endpoint, const SocketAddress& addr) { |
@@ -421,7 +398,7 @@ |
void SetAllocatorFlags(int endpoint, int flags) { |
GetAllocator(endpoint)->set_flags(flags); |
} |
- void SetIceRole(int endpoint, IceRole role) { |
+ void SetIceRole(int endpoint, cricket::IceRole role) { |
GetEndpoint(endpoint)->SetIceRole(role); |
} |
void SetIceTiebreaker(int endpoint, uint64_t tiebreaker) { |
@@ -613,10 +590,12 @@ |
ep2_ch1()->receiving() && ep2_ch1()->writable(), |
1000, 1000); |
- const Candidate* old_local_candidate1 = LocalCandidate(ep1_ch1()); |
- const Candidate* old_local_candidate2 = LocalCandidate(ep2_ch1()); |
- const Candidate* old_remote_candidate1 = RemoteCandidate(ep1_ch1()); |
- const Candidate* old_remote_candidate2 = RemoteCandidate(ep2_ch1()); |
+ const cricket::Candidate* old_local_candidate1 = LocalCandidate(ep1_ch1()); |
+ const cricket::Candidate* old_local_candidate2 = LocalCandidate(ep2_ch1()); |
+ const cricket::Candidate* old_remote_candidate1 = |
+ RemoteCandidate(ep1_ch1()); |
+ const cricket::Candidate* old_remote_candidate2 = |
+ RemoteCandidate(ep2_ch1()); |
ep1_ch1()->SetIceCredentials(kIceUfrag[2], kIcePwd[2]); |
ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[3], kIcePwd[3]); |
@@ -644,7 +623,7 @@ |
void TestSignalRoleConflict() { |
SetIceTiebreaker(0, kTiebreaker1); // Default EP1 is in controlling state. |
- SetIceRole(1, ICEROLE_CONTROLLING); |
+ SetIceRole(1, cricket::ICEROLE_CONTROLLING); |
SetIceTiebreaker(1, kTiebreaker2); |
// Creating channels with both channels role set to CONTROLLING. |
@@ -666,13 +645,10 @@ |
TestSendRecv(1); |
} |
- void OnReadyToSend(TransportChannel* ch) { |
- GetEndpoint(ch)->ready_to_send_ = true; |
- } |
- |
// We pass the candidates directly to the other side. |
- void OnCandidateGathered(TransportChannelImpl* ch, const Candidate& c) { |
- if (force_relay_ && c.type() != RELAY_PORT_TYPE) |
+ void OnCandidateGathered(cricket::TransportChannelImpl* ch, |
+ const cricket::Candidate& c) { |
+ if (force_relay_ && c.type() != cricket::RELAY_PORT_TYPE) |
return; |
if (GetEndpoint(ch)->save_candidates_) { |
@@ -687,8 +663,8 @@ |
GetEndpoint(endpoint)->save_candidates_ = true; |
} |
- void OnCandidatesRemoved(TransportChannelImpl* ch, |
- const std::vector<Candidate>& candidates) { |
+ void OnCandidatesRemoved(cricket::TransportChannelImpl* ch, |
+ const std::vector<cricket::Candidate>& candidates) { |
// Candidate removals are not paused. |
CandidatesData* candidates_data = new CandidatesData(ch, candidates); |
main_->Post(RTC_FROM_HERE, this, MSG_REMOVE_CANDIDATES, candidates_data); |
@@ -698,12 +674,12 @@ |
void VerifySavedTcpCandidates(int endpoint, const std::string& tcptype) { |
for (auto& data : GetEndpoint(endpoint)->saved_candidates_) { |
for (auto& candidate : data->candidates) { |
- EXPECT_EQ(candidate.protocol(), TCP_PROTOCOL_NAME); |
+ EXPECT_EQ(candidate.protocol(), cricket::TCP_PROTOCOL_NAME); |
EXPECT_EQ(candidate.tcptype(), tcptype); |
- if (candidate.tcptype() == TCPTYPE_ACTIVE_STR) { |
- EXPECT_EQ(candidate.address().port(), DISCARD_PORT); |
- } else if (candidate.tcptype() == TCPTYPE_PASSIVE_STR) { |
- EXPECT_NE(candidate.address().port(), DISCARD_PORT); |
+ if (candidate.tcptype() == cricket::TCPTYPE_ACTIVE_STR) { |
+ EXPECT_EQ(candidate.address().port(), cricket::DISCARD_PORT); |
+ } else if (candidate.tcptype() == cricket::TCPTYPE_PASSIVE_STR) { |
+ EXPECT_NE(candidate.address().port(), cricket::DISCARD_PORT); |
} else { |
FAIL() << "Unknown tcptype: " << candidate.tcptype(); |
} |
@@ -726,10 +702,7 @@ |
case MSG_ADD_CANDIDATES: { |
std::unique_ptr<CandidatesData> data( |
static_cast<CandidatesData*>(msg->pdata)); |
- P2PTransportChannel* rch = GetRemoteChannel(data->channel); |
- if (!rch) { |
- return; |
- } |
+ cricket::P2PTransportChannel* rch = GetRemoteChannel(data->channel); |
for (auto& c : data->candidates) { |
if (remote_ice_credential_source_ != FROM_CANDIDATE) { |
c.set_username(""); |
@@ -744,11 +717,8 @@ |
case MSG_REMOVE_CANDIDATES: { |
std::unique_ptr<CandidatesData> data( |
static_cast<CandidatesData*>(msg->pdata)); |
- P2PTransportChannel* rch = GetRemoteChannel(data->channel); |
- if (!rch) { |
- return; |
- } |
- for (Candidate& c : data->candidates) { |
+ cricket::P2PTransportChannel* rch = GetRemoteChannel(data->channel); |
+ for (cricket::Candidate& c : data->candidates) { |
LOG(LS_INFO) << "Removed remote candidate " << c.ToString(); |
rch->RemoveRemoteCandidate(c); |
} |
@@ -756,40 +726,40 @@ |
} |
} |
} |
- void OnReadPacket(TransportChannel* channel, |
- const char* data, |
- size_t len, |
- const rtc::PacketTime& packet_time, |
+ void OnReadPacket(cricket::TransportChannel* channel, const char* data, |
+ size_t len, const rtc::PacketTime& packet_time, |
int flags) { |
std::list<std::string>& packets = GetPacketList(channel); |
packets.push_front(std::string(data, len)); |
} |
- void OnRoleConflict(TransportChannelImpl* channel) { |
+ void OnRoleConflict(cricket::TransportChannelImpl* channel) { |
GetEndpoint(channel)->OnRoleConflict(true); |
- IceRole new_role = GetEndpoint(channel)->ice_role() == ICEROLE_CONTROLLING |
- ? ICEROLE_CONTROLLED |
- : ICEROLE_CONTROLLING; |
+ cricket::IceRole new_role = |
+ GetEndpoint(channel)->ice_role() == cricket::ICEROLE_CONTROLLING ? |
+ cricket::ICEROLE_CONTROLLED : cricket::ICEROLE_CONTROLLING; |
channel->SetIceRole(new_role); |
} |
- int SendData(TransportChannel* channel, const char* data, size_t len) { |
+ int SendData(cricket::TransportChannel* channel, |
+ const char* data, size_t len) { |
rtc::PacketOptions options; |
return channel->SendPacket(data, len, options, 0); |
} |
- bool CheckDataOnChannel(TransportChannel* channel, |
- const char* data, |
- int len) { |
+ bool CheckDataOnChannel(cricket::TransportChannel* channel, |
+ const char* data, int len) { |
return GetChannelData(channel)->CheckData(data, len); |
} |
- static const Candidate* LocalCandidate(P2PTransportChannel* ch) { |
+ static const cricket::Candidate* LocalCandidate( |
+ cricket::P2PTransportChannel* ch) { |
return (ch && ch->best_connection()) ? |
&ch->best_connection()->local_candidate() : NULL; |
} |
- static const Candidate* RemoteCandidate(P2PTransportChannel* ch) { |
+ static const cricket::Candidate* RemoteCandidate( |
+ cricket::P2PTransportChannel* ch) { |
return (ch && ch->best_connection()) ? |
&ch->best_connection()->remote_candidate() : NULL; |
} |
- Endpoint* GetEndpoint(TransportChannel* ch) { |
+ Endpoint* GetEndpoint(cricket::TransportChannel* ch) { |
if (ep1_.HasChannel(ch)) { |
return &ep1_; |
} else if (ep2_.HasChannel(ch)) { |
@@ -798,7 +768,8 @@ |
return NULL; |
} |
} |
- P2PTransportChannel* GetRemoteChannel(TransportChannel* ch) { |
+ cricket::P2PTransportChannel* GetRemoteChannel( |
+ cricket::TransportChannel* ch) { |
if (ch == ep1_ch1()) |
return ep2_ch1(); |
else if (ch == ep1_ch2()) |
@@ -810,7 +781,7 @@ |
else |
return NULL; |
} |
- std::list<std::string>& GetPacketList(TransportChannel* ch) { |
+ std::list<std::string>& GetPacketList(cricket::TransportChannel* ch) { |
return GetChannelData(ch)->ch_packets_; |
} |
@@ -834,9 +805,9 @@ |
std::unique_ptr<rtc::NATSocketServer> nss_; |
std::unique_ptr<rtc::FirewallSocketServer> ss_; |
rtc::SocketServerScope ss_scope_; |
- std::unique_ptr<TestStunServer> stun_server_; |
- TestTurnServer turn_server_; |
- TestRelayServer relay_server_; |
+ std::unique_ptr<cricket::TestStunServer> stun_server_; |
+ cricket::TestTurnServer turn_server_; |
+ cricket::TestRelayServer relay_server_; |
rtc::SocksProxyServer socks_server1_; |
rtc::SocksProxyServer socks_server2_; |
Endpoint ep1_; |
@@ -894,17 +865,21 @@ |
int allocator_flags2) { |
ServerAddresses stun_servers; |
stun_servers.insert(kStunAddr); |
- GetEndpoint(0)->allocator_.reset(new BasicPortAllocator( |
- &(GetEndpoint(0)->network_manager_), stun_servers, rtc::SocketAddress(), |
- rtc::SocketAddress(), rtc::SocketAddress())); |
- GetEndpoint(1)->allocator_.reset(new BasicPortAllocator( |
- &(GetEndpoint(1)->network_manager_), stun_servers, rtc::SocketAddress(), |
- rtc::SocketAddress(), rtc::SocketAddress())); |
- |
- RelayServerConfig turn_server(RELAY_TURN); |
+ GetEndpoint(0)->allocator_.reset( |
+ new cricket::BasicPortAllocator(&(GetEndpoint(0)->network_manager_), |
+ stun_servers, |
+ rtc::SocketAddress(), rtc::SocketAddress(), |
+ rtc::SocketAddress())); |
+ GetEndpoint(1)->allocator_.reset( |
+ new cricket::BasicPortAllocator(&(GetEndpoint(1)->network_manager_), |
+ stun_servers, |
+ rtc::SocketAddress(), rtc::SocketAddress(), |
+ rtc::SocketAddress())); |
+ |
+ cricket::RelayServerConfig turn_server(cricket::RELAY_TURN); |
turn_server.credentials = kRelayCredentials; |
turn_server.ports.push_back( |
- ProtocolAddress(kTurnUdpIntAddr, PROTO_UDP, false)); |
+ cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false)); |
GetEndpoint(0)->allocator_->AddTurnServer(turn_server); |
GetEndpoint(1)->allocator_->AddTurnServer(turn_server); |
@@ -1115,11 +1090,11 @@ |
ep2_ch1()->receiving() && ep2_ch1()->writable(), |
1000, 1000); |
TestSendRecv(1); |
- ConnectionInfos infos; |
+ cricket::ConnectionInfos infos; |
ASSERT_TRUE(ep1_ch1()->GetStats(&infos)); |
ASSERT_TRUE(infos.size() >= 1); |
- ConnectionInfo* best_conn_info = nullptr; |
- for (ConnectionInfo& info : infos) { |
+ cricket::ConnectionInfo* best_conn_info = nullptr; |
+ for (cricket::ConnectionInfo& info : infos) { |
if (info.best_connection) { |
best_conn_info = &info; |
break; |
@@ -1155,7 +1130,7 @@ |
// The caller should have the best connection connected to the peer reflexive |
// candidate. |
- const Connection* best_connection = NULL; |
+ const cricket::Connection* best_connection = NULL; |
WAIT((best_connection = ep1_ch1()->best_connection()) != NULL, 2000); |
EXPECT_EQ("prflx", ep1_ch1()->best_connection()->remote_candidate().type()); |
@@ -1229,7 +1204,7 @@ |
ResumeCandidates(1); |
- const Connection* best_connection = NULL; |
+ const cricket::Connection* best_connection = NULL; |
WAIT((best_connection = ep2_ch1()->best_connection()) != NULL, 2000); |
// Wait to verify the connection is not culled. |
@@ -1254,8 +1229,8 @@ |
kDefaultPortAllocatorFlags); |
// Only gather relay candidates, so that when the prflx candidate arrives |
// it's prioritized above the current candidate pair. |
- GetEndpoint(0)->allocator_->set_candidate_filter(CF_RELAY); |
- GetEndpoint(1)->allocator_->set_candidate_filter(CF_RELAY); |
+ GetEndpoint(0)->allocator_->set_candidate_filter(cricket::CF_RELAY); |
+ GetEndpoint(1)->allocator_->set_candidate_filter(cricket::CF_RELAY); |
// Setting this allows us to control when SetRemoteIceCredentials is called. |
set_remote_ice_credential_source(FROM_CANDIDATE); |
CreateChannels(1); |
@@ -1278,7 +1253,8 @@ |
EXPECT_EQ_WAIT("prflx", |
ep1_ch1()->best_connection()->remote_candidate().type(), |
kDefaultTimeout); |
- const Connection* prflx_best_connection = ep1_ch1()->best_connection(); |
+ const cricket::Connection* prflx_best_connection = |
+ ep1_ch1()->best_connection(); |
// Now simulate the ICE restart on ep1. |
ep1_ch1()->SetIceCredentials(kIceUfrag[2], kIcePwd[2]); |
@@ -1302,7 +1278,7 @@ |
ConfigureEndpoints(OPEN, OPEN, kDefaultPortAllocatorFlags, |
kDefaultPortAllocatorFlags); |
CreateChannels(1); |
- const Connection* best_connection = NULL; |
+ const cricket::Connection* best_connection = NULL; |
// Wait until the callee's connections are created. |
WAIT((best_connection = ep2_ch1()->best_connection()) != NULL, 1000); |
// Wait to see if they get culled; they shouldn't. |
@@ -1357,9 +1333,9 @@ |
SetAllocationStepDelay(0, kMinimumStepDelay); |
SetAllocationStepDelay(1, kMinimumStepDelay); |
- int kOnlyLocalTcpPorts = PORTALLOCATOR_DISABLE_UDP | |
- PORTALLOCATOR_DISABLE_STUN | |
- PORTALLOCATOR_DISABLE_RELAY; |
+ int kOnlyLocalTcpPorts = cricket::PORTALLOCATOR_DISABLE_UDP | |
+ cricket::PORTALLOCATOR_DISABLE_STUN | |
+ cricket::PORTALLOCATOR_DISABLE_RELAY; |
// Disable all protocols except TCP. |
SetAllocatorFlags(0, kOnlyLocalTcpPorts); |
SetAllocatorFlags(1, kOnlyLocalTcpPorts); |
@@ -1378,8 +1354,8 @@ |
CreateChannels(1); |
// Verify tcp candidates. |
- VerifySavedTcpCandidates(0, TCPTYPE_PASSIVE_STR); |
- VerifySavedTcpCandidates(1, TCPTYPE_ACTIVE_STR); |
+ VerifySavedTcpCandidates(0, cricket::TCPTYPE_PASSIVE_STR); |
+ VerifySavedTcpCandidates(1, cricket::TCPTYPE_ACTIVE_STR); |
// Resume candidates. |
ResumeCandidates(0); |
@@ -1408,8 +1384,7 @@ |
// Disable on Windows because it is flaky. |
// https://bugs.chromium.org/p/webrtc/issues/detail?id=6019 |
#if defined(WEBRTC_WIN) |
-#define MAYBE_TestIceConfigWillPassDownToPort \ |
- DISABLED_TestIceConfigWillPassDownToPort |
+#define MAYBE_TestIceConfigWillPassDownToPort DISABLED_TestIceConfigWillPassDownToPort |
#else |
#define MAYBE_TestIceConfigWillPassDownToPort TestIceConfigWillPassDownToPort |
#endif |
@@ -1417,27 +1392,27 @@ |
AddAddress(0, kPublicAddrs[0]); |
AddAddress(1, kPublicAddrs[1]); |
- SetIceRole(0, ICEROLE_CONTROLLING); |
+ SetIceRole(0, cricket::ICEROLE_CONTROLLING); |
SetIceTiebreaker(0, kTiebreaker1); |
- SetIceRole(1, ICEROLE_CONTROLLING); |
+ SetIceRole(1, cricket::ICEROLE_CONTROLLING); |
SetIceTiebreaker(1, kTiebreaker2); |
CreateChannels(1); |
EXPECT_EQ_WAIT(2u, ep1_ch1()->ports().size(), 1000); |
- const std::vector<PortInterface*> ports_before = ep1_ch1()->ports(); |
+ const std::vector<cricket::PortInterface *> ports_before = ep1_ch1()->ports(); |
for (size_t i = 0; i < ports_before.size(); ++i) { |
- EXPECT_EQ(ICEROLE_CONTROLLING, ports_before[i]->GetIceRole()); |
+ EXPECT_EQ(cricket::ICEROLE_CONTROLLING, ports_before[i]->GetIceRole()); |
EXPECT_EQ(kTiebreaker1, ports_before[i]->IceTiebreaker()); |
} |
- ep1_ch1()->SetIceRole(ICEROLE_CONTROLLED); |
+ ep1_ch1()->SetIceRole(cricket::ICEROLE_CONTROLLED); |
ep1_ch1()->SetIceTiebreaker(kTiebreaker2); |
- const std::vector<PortInterface*> ports_after = ep1_ch1()->ports(); |
+ const std::vector<cricket::PortInterface *> ports_after = ep1_ch1()->ports(); |
for (size_t i = 0; i < ports_after.size(); ++i) { |
- EXPECT_EQ(ICEROLE_CONTROLLED, ports_before[i]->GetIceRole()); |
+ EXPECT_EQ(cricket::ICEROLE_CONTROLLED, ports_before[i]->GetIceRole()); |
// SetIceTiebreaker after Connect() has been called will fail. So expect the |
// original value. |
EXPECT_EQ(kTiebreaker1, ports_before[i]->IceTiebreaker()); |
@@ -1495,8 +1470,8 @@ |
SetAllocationStepDelay(1, kMinimumStepDelay); |
// Enable IPv6 |
- SetAllocatorFlags(0, PORTALLOCATOR_ENABLE_IPV6); |
- SetAllocatorFlags(1, PORTALLOCATOR_ENABLE_IPV6); |
+ SetAllocatorFlags(0, cricket::PORTALLOCATOR_ENABLE_IPV6); |
+ SetAllocatorFlags(1, cricket::PORTALLOCATOR_ENABLE_IPV6); |
CreateChannels(1); |
@@ -1516,8 +1491,8 @@ |
TEST_F(P2PTransportChannelTest, TestForceTurn) { |
ConfigureEndpoints( |
NAT_PORT_RESTRICTED, NAT_SYMMETRIC, |
- kDefaultPortAllocatorFlags | PORTALLOCATOR_ENABLE_SHARED_SOCKET, |
- kDefaultPortAllocatorFlags | PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
+ kDefaultPortAllocatorFlags | cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET, |
+ kDefaultPortAllocatorFlags | cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
set_force_relay(true); |
SetAllocationStepDelay(0, kMinimumStepDelay); |
@@ -1549,7 +1524,7 @@ |
SetAllocationStepDelay(0, kDefaultStepDelay); |
SetAllocationStepDelay(1, kDefaultStepDelay); |
CreateChannels(1); |
- IceConfig config = CreateIceConfig(1000, true); |
+ cricket::IceConfig config = CreateIceConfig(1000, true); |
ep1_ch1()->SetIceConfig(config); |
// By default, ep2 does not gather continually. |
@@ -1557,12 +1532,13 @@ |
ep1_ch1()->receiving() && ep1_ch1()->writable() && |
ep2_ch1()->receiving() && ep2_ch1()->writable(), |
1000, 1000); |
- WAIT(IceGatheringState::kIceGatheringComplete == ep1_ch1()->gathering_state(), |
+ WAIT(cricket::IceGatheringState::kIceGatheringComplete == |
+ ep1_ch1()->gathering_state(), |
1000); |
- EXPECT_EQ(IceGatheringState::kIceGatheringGathering, |
+ EXPECT_EQ(cricket::IceGatheringState::kIceGatheringGathering, |
ep1_ch1()->gathering_state()); |
// By now, ep2 should have completed gathering. |
- EXPECT_EQ(IceGatheringState::kIceGatheringComplete, |
+ EXPECT_EQ(cricket::IceGatheringState::kIceGatheringComplete, |
ep2_ch1()->gathering_state()); |
DestroyChannels(); |
@@ -1581,9 +1557,9 @@ |
allocator_1->turn_servers(), pool_size); |
allocator_2->SetConfiguration(allocator_2->stun_servers(), |
allocator_2->turn_servers(), pool_size); |
- const PortAllocatorSession* pooled_session_1 = |
+ const cricket::PortAllocatorSession* pooled_session_1 = |
allocator_1->GetPooledSession(); |
- const PortAllocatorSession* pooled_session_2 = |
+ const cricket::PortAllocatorSession* pooled_session_2 = |
allocator_2->GetPooledSession(); |
ASSERT_NE(nullptr, pooled_session_1); |
ASSERT_NE(nullptr, pooled_session_2); |
@@ -1624,9 +1600,9 @@ |
allocator_1->turn_servers(), pool_size); |
allocator_2->SetConfiguration(allocator_2->stun_servers(), |
allocator_2->turn_servers(), pool_size); |
- const PortAllocatorSession* pooled_session_1 = |
+ const cricket::PortAllocatorSession* pooled_session_1 = |
allocator_1->GetPooledSession(); |
- const PortAllocatorSession* pooled_session_2 = |
+ const cricket::PortAllocatorSession* pooled_session_2 = |
allocator_2->GetPooledSession(); |
ASSERT_NE(nullptr, pooled_session_1); |
ASSERT_NE(nullptr, pooled_session_2); |
@@ -1654,84 +1630,6 @@ |
ep2_ch1()->best_connection()->port())); |
} |
-// Test that when the "presume_writable_when_fully_relayed" flag is set to |
-// false and there's a TURN-TURN candidate pair, it's presume to be writable |
-// as soon as it's created. |
-TEST_F(P2PTransportChannelTest, TurnToTurnPresumedWritable) { |
- ConfigureEndpoints(OPEN, OPEN, kDefaultPortAllocatorFlags, |
- kDefaultPortAllocatorFlags); |
- // Only configure one channel so we can control when the remote candidate |
- // is added. |
- GetEndpoint(0)->cd1_.ch_.reset( |
- CreateChannel(0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[0], |
- kIcePwd[0], kIceUfrag[1], kIcePwd[1])); |
- IceConfig config; |
- config.presume_writable_when_fully_relayed = true; |
- ep1_ch1()->SetIceConfig(config); |
- ep1_ch1()->MaybeStartGathering(); |
- EXPECT_EQ_WAIT(IceGatheringState::kIceGatheringComplete, |
- ep1_ch1()->gathering_state(), kDefaultTimeout); |
- // Add two remote candidates; a host candidate (with higher priority) |
- // and TURN candidate. |
- ep1_ch1()->AddRemoteCandidate( |
- CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 100)); |
- ep1_ch1()->AddRemoteCandidate( |
- CreateUdpCandidate(RELAY_PORT_TYPE, "2.2.2.2", 2, 0)); |
- // Expect that the TURN-TURN candidate pair will be prioritized since it's |
- // "probably writable". |
- EXPECT_TRUE(ep1_ch1()->best_connection() != nullptr); |
- EXPECT_EQ(RELAY_PORT_TYPE, LocalCandidate(ep1_ch1())->type()); |
- EXPECT_EQ(RELAY_PORT_TYPE, RemoteCandidate(ep1_ch1())->type()); |
- // Also expect that the channel instantly indicates that it's writable since |
- // it has a TURN-TURN pair. |
- EXPECT_TRUE(ep1_ch1()->writable()); |
- EXPECT_TRUE(GetEndpoint(0)->ready_to_send_); |
-} |
- |
-// Test that a presumed-writable TURN<->TURN connection is preferred above an |
-// unreliable connection (one that has failed to be pinged for some time). |
-TEST_F(P2PTransportChannelTest, PresumedWritablePreferredOverUnreliable) { |
- rtc::ScopedFakeClock fake_clock; |
- |
- ConfigureEndpoints(NAT_SYMMETRIC, NAT_SYMMETRIC, kDefaultPortAllocatorFlags, |
- kDefaultPortAllocatorFlags); |
- IceConfig config; |
- config.presume_writable_when_fully_relayed = true; |
- GetEndpoint(0)->cd1_.ch_.reset( |
- CreateChannel(0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[0], |
- kIcePwd[0], kIceUfrag[1], kIcePwd[1])); |
- GetEndpoint(1)->cd1_.ch_.reset( |
- CreateChannel(1, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[1], |
- kIcePwd[1], kIceUfrag[0], kIcePwd[0])); |
- ep1_ch1()->SetIceConfig(config); |
- ep2_ch1()->SetIceConfig(config); |
- ep1_ch1()->MaybeStartGathering(); |
- ep2_ch1()->MaybeStartGathering(); |
- // Wait for initial connection as usual. |
- EXPECT_TRUE_SIMULATED_WAIT( |
- ep1_ch1()->receiving() && ep1_ch1()->writable() && |
- ep1_ch1()->best_connection()->writable() && ep2_ch1()->receiving() && |
- ep2_ch1()->writable() && ep2_ch1()->best_connection()->writable(), |
- 1000, fake_clock); |
- const Connection* old_best_connection = ep1_ch1()->best_connection(); |
- // Destroy the second channel and wait for the current connection on the |
- // first channel to become "unreliable", making it no longer writable. |
- GetEndpoint(1)->cd1_.ch_.reset(); |
- EXPECT_TRUE_SIMULATED_WAIT(!ep1_ch1()->writable(), 10000, fake_clock); |
- EXPECT_NE(nullptr, ep1_ch1()->best_connection()); |
- // Add a remote TURN candidate. The first channel should still have a TURN |
- // port available to make a TURN<->TURN pair that's presumed writable. |
- ep1_ch1()->AddRemoteCandidate( |
- CreateUdpCandidate(RELAY_PORT_TYPE, "2.2.2.2", 2, 0)); |
- EXPECT_EQ(RELAY_PORT_TYPE, LocalCandidate(ep1_ch1())->type()); |
- EXPECT_EQ(RELAY_PORT_TYPE, RemoteCandidate(ep1_ch1())->type()); |
- EXPECT_TRUE(ep1_ch1()->writable()); |
- EXPECT_TRUE(GetEndpoint(0)->ready_to_send_); |
- EXPECT_NE(old_best_connection, ep1_ch1()->best_connection()); |
- // Explitly destroy channels, before fake clock is destroyed. |
- DestroyChannels(); |
-} |
- |
// Test what happens when we have 2 users behind the same NAT. This can lead |
// to interesting behavior because the STUN server will only give out the |
// address of the outermost NAT. |
@@ -1807,7 +1705,7 @@ |
RemoteCandidate(ep1_ch1())->address().EqualIPs(kPublicAddrs[1])); |
// Make the receiving timeout shorter for testing. |
- IceConfig config = CreateIceConfig(1000, false); |
+ cricket::IceConfig config = CreateIceConfig(1000, false); |
ep1_ch1()->SetIceConfig(config); |
ep2_ch1()->SetIceConfig(config); |
@@ -1815,8 +1713,8 @@ |
LOG(LS_INFO) << "Failing over..."; |
fw()->AddRule(false, rtc::FP_ANY, rtc::FD_ANY, kPublicAddrs[1]); |
// The best connections will switch, so keep references to them. |
- const Connection* best_connection1 = ep1_ch1()->best_connection(); |
- const Connection* best_connection2 = ep2_ch1()->best_connection(); |
+ const cricket::Connection* best_connection1 = ep1_ch1()->best_connection(); |
+ const cricket::Connection* best_connection2 = ep2_ch1()->best_connection(); |
// We should detect loss of receiving within 1 second or so. |
EXPECT_TRUE_WAIT( |
!best_connection1->receiving() && !best_connection2->receiving(), 3000); |
@@ -1859,7 +1757,7 @@ |
RemoteCandidate(ep1_ch1())->address().EqualIPs(kPublicAddrs[1])); |
// Make the receiving timeout shorter for testing. |
- IceConfig config = CreateIceConfig(1000, false); |
+ cricket::IceConfig config = CreateIceConfig(1000, false); |
ep1_ch1()->SetIceConfig(config); |
ep2_ch1()->SetIceConfig(config); |
@@ -1867,8 +1765,8 @@ |
LOG(LS_INFO) << "Failing over..."; |
fw()->AddRule(false, rtc::FP_ANY, rtc::FD_ANY, kPublicAddrs[0]); |
// The best connections will switch, so keep references to them. |
- const Connection* best_connection1 = ep1_ch1()->best_connection(); |
- const Connection* best_connection2 = ep2_ch1()->best_connection(); |
+ const cricket::Connection* best_connection1 = ep1_ch1()->best_connection(); |
+ const cricket::Connection* best_connection2 = ep2_ch1()->best_connection(); |
// We should detect loss of receiving within 1 second or so. |
EXPECT_TRUE_WAIT( |
!best_connection1->receiving() && !best_connection2->receiving(), 3000); |
@@ -1971,10 +1869,11 @@ |
ep2_ch1()->SetIceConfig(CreateIceConfig(2000, false, backup_ping_interval)); |
// After the state becomes COMPLETED, the backup connection will be pinged |
// once every |backup_ping_interval| milliseconds. |
- ASSERT_TRUE_WAIT(ep2_ch1()->GetState() == STATE_COMPLETED, 1000); |
- const std::vector<Connection*>& connections = ep2_ch1()->connections(); |
+ ASSERT_TRUE_WAIT(ep2_ch1()->GetState() == cricket::STATE_COMPLETED, 1000); |
+ const std::vector<cricket::Connection*>& connections = |
+ ep2_ch1()->connections(); |
ASSERT_EQ(2U, connections.size()); |
- Connection* backup_conn = connections[1]; |
+ cricket::Connection* backup_conn = connections[1]; |
EXPECT_TRUE_WAIT(backup_conn->writable(), 3000); |
int64_t last_ping_response_ms = backup_conn->last_ping_response_received(); |
EXPECT_TRUE_WAIT( |
@@ -1993,10 +1892,10 @@ |
CreateChannels(1); |
// Both transport channels will reach STATE_COMPLETED quickly. |
- EXPECT_EQ_WAIT(TransportChannelState::STATE_COMPLETED, ep1_ch1()->GetState(), |
- 1000); |
- EXPECT_EQ_WAIT(TransportChannelState::STATE_COMPLETED, ep2_ch1()->GetState(), |
- 1000); |
+ EXPECT_EQ_WAIT(cricket::TransportChannelState::STATE_COMPLETED, |
+ ep1_ch1()->GetState(), 1000); |
+ EXPECT_EQ_WAIT(cricket::TransportChannelState::STATE_COMPLETED, |
+ ep2_ch1()->GetState(), 1000); |
} |
// Tests that when a network interface becomes inactive, if and only if |
@@ -2095,8 +1994,8 @@ |
ss_scope_(vss_.get()) {} |
protected: |
- void PrepareChannel(P2PTransportChannel* ch) { |
- ch->SetIceRole(ICEROLE_CONTROLLING); |
+ void PrepareChannel(cricket::P2PTransportChannel* ch) { |
+ ch->SetIceRole(cricket::ICEROLE_CONTROLLING); |
ch->SetIceCredentials(kIceUfrag[0], kIcePwd[0]); |
ch->SetRemoteIceCredentials(kIceUfrag[1], kIcePwd[1]); |
ch->SignalSelectedCandidatePairChanged.connect( |
@@ -2107,39 +2006,54 @@ |
this, &P2PTransportChannelPingTest::OnChannelStateChanged); |
} |
- Connection* WaitForConnectionTo(P2PTransportChannel* ch, |
- const std::string& ip, |
- int port_num) { |
+ cricket::Candidate CreateHostCandidate(const std::string& ip, |
+ int port, |
+ int priority, |
+ const std::string& ufrag = "") { |
+ cricket::Candidate c; |
+ c.set_address(rtc::SocketAddress(ip, port)); |
+ c.set_component(1); |
+ c.set_protocol(cricket::UDP_PROTOCOL_NAME); |
+ c.set_priority(priority); |
+ c.set_username(ufrag); |
+ c.set_type(cricket::LOCAL_PORT_TYPE); |
+ return c; |
+ } |
+ |
+ cricket::Connection* WaitForConnectionTo(cricket::P2PTransportChannel* ch, |
+ const std::string& ip, |
+ int port_num) { |
EXPECT_TRUE_WAIT(GetConnectionTo(ch, ip, port_num) != nullptr, 3000); |
return GetConnectionTo(ch, ip, port_num); |
} |
- Port* GetPort(P2PTransportChannel* ch) { |
+ cricket::Port* GetPort(cricket::P2PTransportChannel* ch) { |
if (ch->ports().empty()) { |
return nullptr; |
} |
- return static_cast<Port*>(ch->ports()[0]); |
- } |
- |
- Connection* GetConnectionTo(P2PTransportChannel* ch, |
- const std::string& ip, |
- int port_num) { |
- Port* port = GetPort(ch); |
+ return static_cast<cricket::Port*>(ch->ports()[0]); |
+ } |
+ |
+ cricket::Connection* GetConnectionTo(cricket::P2PTransportChannel* ch, |
+ const std::string& ip, |
+ int port_num) { |
+ cricket::Port* port = GetPort(ch); |
if (!port) { |
return nullptr; |
} |
return port->GetConnection(rtc::SocketAddress(ip, port_num)); |
} |
- Connection* FindNextPingableConnectionAndPingIt(P2PTransportChannel* ch) { |
- Connection* conn = ch->FindNextPingableConnection(); |
+ cricket::Connection* FindNextPingableConnectionAndPingIt( |
+ cricket::P2PTransportChannel* ch) { |
+ cricket::Connection* conn = ch->FindNextPingableConnection(); |
if (conn) { |
ch->MarkConnectionPinged(conn); |
} |
return conn; |
} |
- int SendData(TransportChannel& channel, |
+ int SendData(cricket::TransportChannel& channel, |
const char* data, |
size_t len, |
int packet_id) { |
@@ -2149,23 +2063,25 @@ |
} |
void OnSelectedCandidatePairChanged( |
- TransportChannel* transport_channel, |
- CandidatePairInterface* selected_candidate_pair, |
+ cricket::TransportChannel* transport_channel, |
+ cricket::CandidatePairInterface* selected_candidate_pair, |
int last_sent_packet_id) { |
last_selected_candidate_pair_ = selected_candidate_pair; |
last_sent_packet_id_ = last_sent_packet_id; |
} |
- void ReceivePingOnConnection(Connection* conn, |
+ void ReceivePingOnConnection(cricket::Connection* conn, |
const std::string& remote_ufrag, |
int priority) { |
- IceMessage msg; |
- msg.SetType(STUN_BINDING_REQUEST); |
- msg.AddAttribute(new StunByteStringAttribute( |
- STUN_ATTR_USERNAME, |
+ cricket::IceMessage msg; |
+ msg.SetType(cricket::STUN_BINDING_REQUEST); |
+ msg.AddAttribute(new cricket::StunByteStringAttribute( |
+ cricket::STUN_ATTR_USERNAME, |
conn->local_candidate().username() + ":" + remote_ufrag)); |
- msg.AddAttribute(new StunUInt32Attribute(STUN_ATTR_PRIORITY, priority)); |
- msg.SetTransactionID(rtc::CreateRandomString(kStunTransactionIdLength)); |
+ msg.AddAttribute(new cricket::StunUInt32Attribute( |
+ cricket::STUN_ATTR_PRIORITY, priority)); |
+ msg.SetTransactionID( |
+ rtc::CreateRandomString(cricket::kStunTransactionIdLength)); |
msg.AddMessageIntegrity(conn->local_candidate().password()); |
msg.AddFingerprint(); |
rtc::ByteBufferWriter buf; |
@@ -2173,42 +2089,42 @@ |
conn->OnReadPacket(buf.Data(), buf.Length(), rtc::CreatePacketTime(0)); |
} |
- void OnReadyToSend(TransportChannel* channel) { |
+ void OnReadyToSend(cricket::TransportChannel* channel) { |
channel_ready_to_send_ = true; |
} |
- void OnChannelStateChanged(TransportChannelImpl* channel) { |
+ void OnChannelStateChanged(cricket::TransportChannelImpl* channel) { |
channel_state_ = channel->GetState(); |
} |
- CandidatePairInterface* last_selected_candidate_pair() { |
+ cricket::CandidatePairInterface* last_selected_candidate_pair() { |
return last_selected_candidate_pair_; |
} |
int last_sent_packet_id() { return last_sent_packet_id_; } |
bool channel_ready_to_send() { return channel_ready_to_send_; } |
void reset_channel_ready_to_send() { channel_ready_to_send_ = false; } |
- TransportChannelState channel_state() { return channel_state_; } |
+ cricket::TransportChannelState channel_state() { return channel_state_; } |
private: |
std::unique_ptr<rtc::PhysicalSocketServer> pss_; |
std::unique_ptr<rtc::VirtualSocketServer> vss_; |
rtc::SocketServerScope ss_scope_; |
- CandidatePairInterface* last_selected_candidate_pair_ = nullptr; |
+ cricket::CandidatePairInterface* last_selected_candidate_pair_ = nullptr; |
int last_sent_packet_id_ = -1; |
bool channel_ready_to_send_ = false; |
- TransportChannelState channel_state_ = STATE_INIT; |
+ cricket::TransportChannelState channel_state_ = cricket::STATE_INIT; |
}; |
TEST_F(P2PTransportChannelPingTest, TestTriggeredChecks) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("trigger checks", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("trigger checks", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 2)); |
- |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2)); |
+ |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn1 != nullptr); |
ASSERT_TRUE(conn2 != nullptr); |
@@ -2224,16 +2140,16 @@ |
} |
TEST_F(P2PTransportChannelPingTest, TestAllConnectionsPingedSufficiently) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("ping sufficiently", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("ping sufficiently", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 2)); |
- |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2)); |
+ |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn1 != nullptr); |
ASSERT_TRUE(conn2 != nullptr); |
@@ -2253,13 +2169,13 @@ |
int SCHEDULING_RANGE = 200; |
int RTT_RANGE = 10; |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("TestChannel", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("TestChannel", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ cricket::Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn != nullptr); |
SIMULATED_WAIT(conn->num_pings_sent() == 1, kDefaultTimeout, clock); |
@@ -2272,7 +2188,7 @@ |
int64_t ping_interval_ms = (clock.TimeNanos() - start) / |
rtc::kNumNanosecsPerMillisec / |
(MIN_PINGS_AT_WEAK_PING_INTERVAL - 1); |
- EXPECT_EQ(ping_interval_ms, WEAK_PING_INTERVAL); |
+ EXPECT_EQ(ping_interval_ms, cricket::WEAK_PING_INTERVAL); |
// Stabilizing. |
@@ -2283,9 +2199,11 @@ |
// to converge the RTT. |
SIMULATED_WAIT(conn->num_pings_sent() == ping_sent_before + 1, 3000, clock); |
ping_interval_ms = (clock.TimeNanos() - start) / rtc::kNumNanosecsPerMillisec; |
- EXPECT_GE(ping_interval_ms, STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL); |
+ EXPECT_GE(ping_interval_ms, |
+ cricket::STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL); |
EXPECT_LE(ping_interval_ms, |
- STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL + SCHEDULING_RANGE); |
+ cricket::STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL + |
+ SCHEDULING_RANGE); |
// Stabilized. |
@@ -2298,9 +2216,11 @@ |
start = clock.TimeNanos(); |
SIMULATED_WAIT(conn->num_pings_sent() == ping_sent_before + 1, 3000, clock); |
ping_interval_ms = (clock.TimeNanos() - start) / rtc::kNumNanosecsPerMillisec; |
- EXPECT_GE(ping_interval_ms, STABLE_WRITABLE_CONNECTION_PING_INTERVAL); |
- EXPECT_LE(ping_interval_ms, |
- STABLE_WRITABLE_CONNECTION_PING_INTERVAL + SCHEDULING_RANGE); |
+ EXPECT_GE(ping_interval_ms, |
+ cricket::STABLE_WRITABLE_CONNECTION_PING_INTERVAL); |
+ EXPECT_LE( |
+ ping_interval_ms, |
+ cricket::STABLE_WRITABLE_CONNECTION_PING_INTERVAL + SCHEDULING_RANGE); |
// Destabilized. |
@@ -2325,22 +2245,24 @@ |
ping_sent_before = conn->num_pings_sent(); |
SIMULATED_WAIT(conn->num_pings_sent() == ping_sent_before + 1, 3000, clock); |
ping_interval_ms = (clock.TimeNanos() - start) / rtc::kNumNanosecsPerMillisec; |
- EXPECT_GE(ping_interval_ms, STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL); |
+ EXPECT_GE(ping_interval_ms, |
+ cricket::STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL); |
EXPECT_LE(ping_interval_ms, |
- STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL + SCHEDULING_RANGE); |
+ cricket::STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL + |
+ SCHEDULING_RANGE); |
} |
TEST_F(P2PTransportChannelPingTest, TestNoTriggeredChecksWhenWritable) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("trigger checks", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("trigger checks", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 2)); |
- |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2)); |
+ |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn1 != nullptr); |
ASSERT_TRUE(conn2 != nullptr); |
@@ -2357,18 +2279,18 @@ |
} |
TEST_F(P2PTransportChannelPingTest, TestSignalStateChanged) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("state change", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("state change", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
// Pruning the connection reduces the set of active connections and changes |
// the channel state. |
conn1->Prune(); |
- EXPECT_EQ_WAIT(STATE_FAILED, channel_state(), kDefaultTimeout); |
+ EXPECT_EQ_WAIT(cricket::STATE_FAILED, channel_state(), kDefaultTimeout); |
} |
// Test adding remote candidates with different ufrags. If a remote candidate |
@@ -2378,17 +2300,16 @@ |
// credentials arrive. If a remote candidate is added with the current ICE |
// ufrag, its pwd and generation will be set properly. |
TEST_F(P2PTransportChannelPingTest, TestAddRemoteCandidateWithVariousUfrags) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("add candidate", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("add candidate", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
// Add a candidate with a future ufrag. |
- ch.AddRemoteCandidate( |
- CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1, kIceUfrag[2])); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1, kIceUfrag[2])); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
- const Candidate& candidate = conn1->remote_candidate(); |
+ const cricket::Candidate& candidate = conn1->remote_candidate(); |
EXPECT_EQ(kIceUfrag[2], candidate.username()); |
EXPECT_TRUE(candidate.password().empty()); |
EXPECT_TRUE(FindNextPingableConnectionAndPingIt(&ch) == nullptr); |
@@ -2402,24 +2323,22 @@ |
EXPECT_EQ(conn1, FindNextPingableConnectionAndPingIt(&ch)); |
// Add a candidate with an old ufrag. No connection will be created. |
- ch.AddRemoteCandidate( |
- CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 2, kIceUfrag[1])); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2, kIceUfrag[1])); |
rtc::Thread::Current()->ProcessMessages(500); |
EXPECT_TRUE(GetConnectionTo(&ch, "2.2.2.2", 2) == nullptr); |
// Add a candidate with the current ufrag, its pwd and generation will be |
// assigned, even if the generation is not set. |
- ch.AddRemoteCandidate( |
- CreateUdpCandidate(LOCAL_PORT_TYPE, "3.3.3.3", 3, 0, kIceUfrag[2])); |
- Connection* conn3 = nullptr; |
+ ch.AddRemoteCandidate(CreateHostCandidate("3.3.3.3", 3, 0, kIceUfrag[2])); |
+ cricket::Connection* conn3 = nullptr; |
ASSERT_TRUE_WAIT((conn3 = GetConnectionTo(&ch, "3.3.3.3", 3)) != nullptr, |
3000); |
- const Candidate& new_candidate = conn3->remote_candidate(); |
+ const cricket::Candidate& new_candidate = conn3->remote_candidate(); |
EXPECT_EQ(kIcePwd[2], new_candidate.password()); |
EXPECT_EQ(1U, new_candidate.generation()); |
// Check that the pwd of all remote candidates are properly assigned. |
- for (const RemoteCandidate& candidate : ch.remote_candidates()) { |
+ for (const cricket::RemoteCandidate& candidate : ch.remote_candidates()) { |
EXPECT_TRUE(candidate.username() == kIceUfrag[1] || |
candidate.username() == kIceUfrag[2]); |
if (candidate.username() == kIceUfrag[1]) { |
@@ -2431,22 +2350,22 @@ |
} |
TEST_F(P2PTransportChannelPingTest, ConnectionResurrection) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("connection resurrection", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("connection resurrection", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
// Create conn1 and keep track of original candidate priority. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
uint32_t remote_priority = conn1->remote_candidate().priority(); |
// Create a higher priority candidate and make the connection |
// receiving/writable. This will prune conn1. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 2)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
conn2->ReceivedPing(); |
conn2->ReceivedPingResponse(LOW_RTT); |
@@ -2458,34 +2377,34 @@ |
EXPECT_TRUE_WAIT(GetConnectionTo(&ch, "1.1.1.1", 1) == nullptr, 1000); |
// Create a minimal STUN message with prflx priority. |
- IceMessage request; |
- request.SetType(STUN_BINDING_REQUEST); |
- request.AddAttribute( |
- new StunByteStringAttribute(STUN_ATTR_USERNAME, kIceUfrag[1])); |
- uint32_t prflx_priority = ICE_TYPE_PREFERENCE_PRFLX << 24; |
- request.AddAttribute( |
- new StunUInt32Attribute(STUN_ATTR_PRIORITY, prflx_priority)); |
+ cricket::IceMessage request; |
+ request.SetType(cricket::STUN_BINDING_REQUEST); |
+ request.AddAttribute(new cricket::StunByteStringAttribute( |
+ cricket::STUN_ATTR_USERNAME, kIceUfrag[1])); |
+ uint32_t prflx_priority = cricket::ICE_TYPE_PREFERENCE_PRFLX << 24; |
+ request.AddAttribute(new cricket::StunUInt32Attribute( |
+ cricket::STUN_ATTR_PRIORITY, prflx_priority)); |
EXPECT_NE(prflx_priority, remote_priority); |
- Port* port = GetPort(&ch); |
+ cricket::Port* port = GetPort(&ch); |
// conn1 should be resurrected with original priority. |
- port->SignalUnknownAddress(port, rtc::SocketAddress("1.1.1.1", 1), PROTO_UDP, |
- &request, kIceUfrag[1], false); |
+ port->SignalUnknownAddress(port, rtc::SocketAddress("1.1.1.1", 1), |
+ cricket::PROTO_UDP, &request, kIceUfrag[1], false); |
conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
EXPECT_EQ(conn1->remote_candidate().priority(), remote_priority); |
// conn3, a real prflx connection, should have prflx priority. |
- port->SignalUnknownAddress(port, rtc::SocketAddress("3.3.3.3", 1), PROTO_UDP, |
- &request, kIceUfrag[1], false); |
- Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 1); |
+ port->SignalUnknownAddress(port, rtc::SocketAddress("3.3.3.3", 1), |
+ cricket::PROTO_UDP, &request, kIceUfrag[1], false); |
+ cricket::Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 1); |
ASSERT_TRUE(conn3 != nullptr); |
EXPECT_EQ(conn3->remote_candidate().priority(), prflx_priority); |
} |
TEST_F(P2PTransportChannelPingTest, TestReceivingStateChange) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("receiving state change", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("receiving state change", 1, &pa); |
PrepareChannel(&ch); |
// Default receiving timeout and checking receiving interval should not be too |
// small. |
@@ -2496,8 +2415,8 @@ |
EXPECT_EQ(50, ch.check_receiving_interval()); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
conn1->ReceivedPing(); |
@@ -2514,14 +2433,14 @@ |
// best connection changes and SignalReadyToSend will be fired if the new best |
// connection is writable. |
TEST_F(P2PTransportChannelPingTest, TestSelectConnectionBeforeNomination) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("receiving state change", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("receiving state change", 1, &pa); |
PrepareChannel(&ch); |
- ch.SetIceRole(ICEROLE_CONTROLLED); |
+ ch.SetIceRole(cricket::ICEROLE_CONTROLLED); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
EXPECT_EQ(conn1, ch.best_connection()); |
EXPECT_EQ(conn1, last_selected_candidate_pair()); |
@@ -2535,8 +2454,8 @@ |
SendData(ch, data, len, ++last_packet_id); |
// When a higher priority candidate comes in, the new connection is chosen |
// as the best connection. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 10)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 10)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
EXPECT_EQ(conn2, ch.best_connection()); |
EXPECT_EQ(conn2, last_selected_candidate_pair()); |
@@ -2547,8 +2466,8 @@ |
// connection will be set as the best connection, even though |
// its priority is lower. |
SendData(ch, data, len, ++last_packet_id); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "3.3.3.3", 3, 1)); |
- Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
+ ch.AddRemoteCandidate(CreateHostCandidate("3.3.3.3", 3, 1)); |
+ cricket::Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
ASSERT_TRUE(conn3 != nullptr); |
// Because it has a lower priority, the best connection is still conn2. |
EXPECT_EQ(conn2, ch.best_connection()); |
@@ -2566,8 +2485,8 @@ |
// it will not be set as the best connection because the best connection |
// is nominated by the controlling side. |
SendData(ch, data, len, ++last_packet_id); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "4.4.4.4", 4, 100)); |
- Connection* conn4 = WaitForConnectionTo(&ch, "4.4.4.4", 4); |
+ ch.AddRemoteCandidate(CreateHostCandidate("4.4.4.4", 4, 100)); |
+ cricket::Connection* conn4 = WaitForConnectionTo(&ch, "4.4.4.4", 4); |
ASSERT_TRUE(conn4 != nullptr); |
EXPECT_EQ(conn3, ch.best_connection()); |
// But if it is nominated via use_candidate and writable, it will be set as |
@@ -2592,24 +2511,24 @@ |
// request contains the use_candidate attribute. Plus, it will also sends back |
// a ping response and set the ICE pwd in the remote candidate appropriately. |
TEST_F(P2PTransportChannelPingTest, TestSelectConnectionFromUnknownAddress) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("receiving state change", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("receiving state change", 1, &pa); |
PrepareChannel(&ch); |
- ch.SetIceRole(ICEROLE_CONTROLLED); |
+ ch.SetIceRole(cricket::ICEROLE_CONTROLLED); |
ch.Connect(); |
ch.MaybeStartGathering(); |
// A minimal STUN message with prflx priority. |
- IceMessage request; |
- request.SetType(STUN_BINDING_REQUEST); |
- request.AddAttribute( |
- new StunByteStringAttribute(STUN_ATTR_USERNAME, kIceUfrag[1])); |
- uint32_t prflx_priority = ICE_TYPE_PREFERENCE_PRFLX << 24; |
- request.AddAttribute( |
- new StunUInt32Attribute(STUN_ATTR_PRIORITY, prflx_priority)); |
- TestUDPPort* port = static_cast<TestUDPPort*>(GetPort(&ch)); |
- port->SignalUnknownAddress(port, rtc::SocketAddress("1.1.1.1", 1), PROTO_UDP, |
- &request, kIceUfrag[1], false); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ cricket::IceMessage request; |
+ request.SetType(cricket::STUN_BINDING_REQUEST); |
+ request.AddAttribute(new cricket::StunByteStringAttribute( |
+ cricket::STUN_ATTR_USERNAME, kIceUfrag[1])); |
+ uint32_t prflx_priority = cricket::ICE_TYPE_PREFERENCE_PRFLX << 24; |
+ request.AddAttribute(new cricket::StunUInt32Attribute( |
+ cricket::STUN_ATTR_PRIORITY, prflx_priority)); |
+ cricket::TestUDPPort* port = static_cast<cricket::TestUDPPort*>(GetPort(&ch)); |
+ port->SignalUnknownAddress(port, rtc::SocketAddress("1.1.1.1", 1), |
+ cricket::PROTO_UDP, &request, kIceUfrag[1], false); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
EXPECT_TRUE(port->sent_binding_response()); |
EXPECT_EQ(conn1, ch.best_connection()); |
@@ -2618,8 +2537,8 @@ |
port->set_sent_binding_response(false); |
// Another connection is nominated via use_candidate. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 1)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 1)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
// Because it has a lower priority, the best connection is still conn1. |
EXPECT_EQ(conn1, ch.best_connection()); |
@@ -2633,9 +2552,9 @@ |
// Another request with unknown address, it will not be set as the best |
// connection because the best connection was nominated by the controlling |
// side. |
- port->SignalUnknownAddress(port, rtc::SocketAddress("3.3.3.3", 3), PROTO_UDP, |
- &request, kIceUfrag[1], false); |
- Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
+ port->SignalUnknownAddress(port, rtc::SocketAddress("3.3.3.3", 3), |
+ cricket::PROTO_UDP, &request, kIceUfrag[1], false); |
+ cricket::Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
ASSERT_TRUE(conn3 != nullptr); |
EXPECT_TRUE(port->sent_binding_response()); |
conn3->ReceivedPingResponse(LOW_RTT); // Become writable. |
@@ -2644,10 +2563,11 @@ |
// However if the request contains use_candidate attribute, it will be |
// selected as the best connection. |
- request.AddAttribute(new StunByteStringAttribute(STUN_ATTR_USE_CANDIDATE)); |
- port->SignalUnknownAddress(port, rtc::SocketAddress("4.4.4.4", 4), PROTO_UDP, |
- &request, kIceUfrag[1], false); |
- Connection* conn4 = WaitForConnectionTo(&ch, "4.4.4.4", 4); |
+ request.AddAttribute( |
+ new cricket::StunByteStringAttribute(cricket::STUN_ATTR_USE_CANDIDATE)); |
+ port->SignalUnknownAddress(port, rtc::SocketAddress("4.4.4.4", 4), |
+ cricket::PROTO_UDP, &request, kIceUfrag[1], false); |
+ cricket::Connection* conn4 = WaitForConnectionTo(&ch, "4.4.4.4", 4); |
ASSERT_TRUE(conn4 != nullptr); |
EXPECT_TRUE(port->sent_binding_response()); |
// conn4 is not the best connection yet because it is not writable. |
@@ -2660,9 +2580,9 @@ |
port->set_sent_binding_response(false); |
ch.SetRemoteIceCredentials(kIceUfrag[2], kIcePwd[2]); |
ch.SetRemoteIceCredentials(kIceUfrag[3], kIcePwd[3]); |
- port->SignalUnknownAddress(port, rtc::SocketAddress("5.5.5.5", 5), PROTO_UDP, |
- &request, kIceUfrag[2], false); |
- Connection* conn5 = WaitForConnectionTo(&ch, "5.5.5.5", 5); |
+ port->SignalUnknownAddress(port, rtc::SocketAddress("5.5.5.5", 5), |
+ cricket::PROTO_UDP, &request, kIceUfrag[2], false); |
+ cricket::Connection* conn5 = WaitForConnectionTo(&ch, "5.5.5.5", 5); |
ASSERT_TRUE(conn5 != nullptr); |
EXPECT_TRUE(port->sent_binding_response()); |
EXPECT_EQ(kIcePwd[2], conn5->remote_candidate().password()); |
@@ -2673,22 +2593,22 @@ |
// at which point the controlled side will select that connection as |
// the "best connection". |
TEST_F(P2PTransportChannelPingTest, TestSelectConnectionBasedOnMediaReceived) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("receiving state change", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("receiving state change", 1, &pa); |
PrepareChannel(&ch); |
- ch.SetIceRole(ICEROLE_CONTROLLED); |
+ ch.SetIceRole(cricket::ICEROLE_CONTROLLED); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 10)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 10)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
EXPECT_EQ(conn1, ch.best_connection()); |
// If a data packet is received on conn2, the best connection should |
// switch to conn2 because the controlled side must mirror the media path |
// chosen by the controlling side. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 1)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 1)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
conn2->ReceivedPing(); // Start receiving. |
// Do not switch because it is not writable. |
@@ -2702,18 +2622,19 @@ |
// Now another STUN message with an unknown address and use_candidate will |
// nominate the best connection. |
- IceMessage request; |
- request.SetType(STUN_BINDING_REQUEST); |
+ cricket::IceMessage request; |
+ request.SetType(cricket::STUN_BINDING_REQUEST); |
+ request.AddAttribute(new cricket::StunByteStringAttribute( |
+ cricket::STUN_ATTR_USERNAME, kIceUfrag[1])); |
+ uint32_t prflx_priority = cricket::ICE_TYPE_PREFERENCE_PRFLX << 24; |
+ request.AddAttribute(new cricket::StunUInt32Attribute( |
+ cricket::STUN_ATTR_PRIORITY, prflx_priority)); |
request.AddAttribute( |
- new StunByteStringAttribute(STUN_ATTR_USERNAME, kIceUfrag[1])); |
- uint32_t prflx_priority = ICE_TYPE_PREFERENCE_PRFLX << 24; |
- request.AddAttribute( |
- new StunUInt32Attribute(STUN_ATTR_PRIORITY, prflx_priority)); |
- request.AddAttribute(new StunByteStringAttribute(STUN_ATTR_USE_CANDIDATE)); |
- Port* port = GetPort(&ch); |
- port->SignalUnknownAddress(port, rtc::SocketAddress("3.3.3.3", 3), PROTO_UDP, |
- &request, kIceUfrag[1], false); |
- Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
+ new cricket::StunByteStringAttribute(cricket::STUN_ATTR_USE_CANDIDATE)); |
+ cricket::Port* port = GetPort(&ch); |
+ port->SignalUnknownAddress(port, rtc::SocketAddress("3.3.3.3", 3), |
+ cricket::PROTO_UDP, &request, kIceUfrag[1], false); |
+ cricket::Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
ASSERT_TRUE(conn3 != nullptr); |
EXPECT_EQ(conn2, ch.best_connection()); // Not writable yet. |
conn3->ReceivedPingResponse(LOW_RTT); // Become writable. |
@@ -2730,8 +2651,8 @@ |
// Test that if a new remote candidate has the same address and port with |
// an old one, it will be used to create a new connection. |
TEST_F(P2PTransportChannelPingTest, TestAddRemoteCandidateWithAddressReuse) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("candidate reuse", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("candidate reuse", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
@@ -2739,16 +2660,16 @@ |
const int port_num = 1; |
// kIceUfrag[1] is the current generation ufrag. |
- Candidate candidate = CreateUdpCandidate(LOCAL_PORT_TYPE, host_address, |
- port_num, 1, kIceUfrag[1]); |
+ cricket::Candidate candidate = |
+ CreateHostCandidate(host_address, port_num, 1, kIceUfrag[1]); |
ch.AddRemoteCandidate(candidate); |
- Connection* conn1 = WaitForConnectionTo(&ch, host_address, port_num); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, host_address, port_num); |
ASSERT_TRUE(conn1 != nullptr); |
EXPECT_EQ(0u, conn1->remote_candidate().generation()); |
// Simply adding the same candidate again won't create a new connection. |
ch.AddRemoteCandidate(candidate); |
- Connection* conn2 = GetConnectionTo(&ch, host_address, port_num); |
+ cricket::Connection* conn2 = GetConnectionTo(&ch, host_address, port_num); |
EXPECT_EQ(conn1, conn2); |
// Update the ufrag of the candidate and add it again. |
@@ -2769,22 +2690,22 @@ |
// When the current best connection is strong, lower-priority connections will |
// be pruned. Otherwise, lower-priority connections are kept. |
TEST_F(P2PTransportChannelPingTest, TestDontPruneWhenWeak) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("test channel", 1, &pa); |
PrepareChannel(&ch); |
- ch.SetIceRole(ICEROLE_CONTROLLED); |
+ ch.SetIceRole(cricket::ICEROLE_CONTROLLED); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
EXPECT_EQ(conn1, ch.best_connection()); |
conn1->ReceivedPingResponse(LOW_RTT); // Becomes writable and receiving |
// When a higher-priority, nominated candidate comes in, the connections with |
// lower-priority are pruned. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 10)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 10)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
conn2->ReceivedPingResponse(LOW_RTT); // Becomes writable and receiving |
conn2->set_nominated(true); |
@@ -2795,8 +2716,8 @@ |
// Wait until conn2 becomes not receiving. |
EXPECT_TRUE_WAIT(!conn2->receiving(), 3000); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "3.3.3.3", 3, 1)); |
- Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
+ ch.AddRemoteCandidate(CreateHostCandidate("3.3.3.3", 3, 1)); |
+ cricket::Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
ASSERT_TRUE(conn3 != nullptr); |
// The best connection should still be conn2. Even through conn3 has lower |
// priority and is not receiving/writable, it is not pruned because the best |
@@ -2807,40 +2728,41 @@ |
// Test that GetState returns the state correctly. |
TEST_F(P2PTransportChannelPingTest, TestGetState) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("test channel", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- EXPECT_EQ(TransportChannelState::STATE_INIT, ch.GetState()); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 100)); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 1)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ EXPECT_EQ(cricket::TransportChannelState::STATE_INIT, ch.GetState()); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 100)); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 1)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn1 != nullptr); |
ASSERT_TRUE(conn2 != nullptr); |
// Now there are two connections, so the transport channel is connecting. |
- EXPECT_EQ(TransportChannelState::STATE_CONNECTING, ch.GetState()); |
+ EXPECT_EQ(cricket::TransportChannelState::STATE_CONNECTING, ch.GetState()); |
// |conn1| becomes writable and receiving; it then should prune |conn2|. |
conn1->ReceivedPingResponse(LOW_RTT); |
EXPECT_TRUE_WAIT(conn2->pruned(), 1000); |
- EXPECT_EQ(TransportChannelState::STATE_COMPLETED, ch.GetState()); |
+ EXPECT_EQ(cricket::TransportChannelState::STATE_COMPLETED, ch.GetState()); |
conn1->Prune(); // All connections are pruned. |
// Need to wait until the channel state is updated. |
- EXPECT_EQ_WAIT(TransportChannelState::STATE_FAILED, ch.GetState(), 1000); |
+ EXPECT_EQ_WAIT(cricket::TransportChannelState::STATE_FAILED, ch.GetState(), |
+ 1000); |
} |
// Test that when a low-priority connection is pruned, it is not deleted |
// right away, and it can become active and be pruned again. |
TEST_F(P2PTransportChannelPingTest, TestConnectionPrunedAgain) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("test channel", 1, &pa); |
PrepareChannel(&ch); |
ch.SetIceConfig(CreateIceConfig(1000, false)); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 100)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 100)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
EXPECT_EQ(conn1, ch.best_connection()); |
conn1->ReceivedPingResponse(LOW_RTT); // Becomes writable and receiving |
@@ -2849,53 +2771,53 @@ |
// not be deleted right away. Once the current best connection becomes not |
// receiving, |conn2| will start to ping and upon receiving the ping response, |
// it will become the best connection. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 1)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 1)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
EXPECT_TRUE_WAIT(!conn2->active(), 1000); |
// |conn2| should not send a ping yet. |
- EXPECT_EQ(Connection::STATE_WAITING, conn2->state()); |
- EXPECT_EQ(TransportChannelState::STATE_COMPLETED, ch.GetState()); |
+ EXPECT_EQ(cricket::Connection::STATE_WAITING, conn2->state()); |
+ EXPECT_EQ(cricket::TransportChannelState::STATE_COMPLETED, ch.GetState()); |
// Wait for |conn1| becoming not receiving. |
EXPECT_TRUE_WAIT(!conn1->receiving(), 3000); |
// Make sure conn2 is not deleted. |
conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
- EXPECT_EQ_WAIT(Connection::STATE_INPROGRESS, conn2->state(), 1000); |
+ EXPECT_EQ_WAIT(cricket::Connection::STATE_INPROGRESS, conn2->state(), 1000); |
conn2->ReceivedPingResponse(LOW_RTT); |
EXPECT_EQ_WAIT(conn2, ch.best_connection(), 1000); |
- EXPECT_EQ(TransportChannelState::STATE_CONNECTING, ch.GetState()); |
+ EXPECT_EQ(cricket::TransportChannelState::STATE_CONNECTING, ch.GetState()); |
// When |conn1| comes back again, |conn2| will be pruned again. |
conn1->ReceivedPingResponse(LOW_RTT); |
EXPECT_EQ_WAIT(conn1, ch.best_connection(), 1000); |
EXPECT_TRUE_WAIT(!conn2->active(), 1000); |
- EXPECT_EQ(TransportChannelState::STATE_COMPLETED, ch.GetState()); |
+ EXPECT_EQ(cricket::TransportChannelState::STATE_COMPLETED, ch.GetState()); |
} |
// Test that if all connections in a channel has timed out on writing, they |
// will all be deleted. We use Prune to simulate write_time_out. |
TEST_F(P2PTransportChannelPingTest, TestDeleteConnectionsIfAllWriteTimedout) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("test channel", 1, &pa); |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
// Have one connection only but later becomes write-time-out. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 100)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 100)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
conn1->ReceivedPing(); // Becomes receiving |
conn1->Prune(); |
EXPECT_TRUE_WAIT(ch.connections().empty(), 1000); |
// Have two connections but both become write-time-out later. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 1)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 1)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
conn2->ReceivedPing(); // Becomes receiving |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "3.3.3.3", 3, 2)); |
- Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
+ ch.AddRemoteCandidate(CreateHostCandidate("3.3.3.3", 3, 2)); |
+ cricket::Connection* conn3 = WaitForConnectionTo(&ch, "3.3.3.3", 3); |
ASSERT_TRUE(conn3 != nullptr); |
conn3->ReceivedPing(); // Becomes receiving |
// Now prune both conn2 and conn3; they will be deleted soon. |
@@ -2909,14 +2831,14 @@ |
// connection belonging to an old session becomes writable, it won't stop |
// the current port allocator session. |
TEST_F(P2PTransportChannelPingTest, TestStopPortAllocatorSessions) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", 1, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("test channel", 1, &pa); |
PrepareChannel(&ch); |
ch.SetIceConfig(CreateIceConfig(2000, false)); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 100)); |
- Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 100)); |
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn1 != nullptr); |
conn1->ReceivedPingResponse(LOW_RTT); // Becomes writable and receiving |
EXPECT_TRUE(!ch.allocator_session()->IsGettingPorts()); |
@@ -2932,8 +2854,8 @@ |
// But if a new connection created from the new session becomes writable, |
// it will stop the current session. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 100)); |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 100)); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
ASSERT_TRUE(conn2 != nullptr); |
conn2->ReceivedPingResponse(LOW_RTT); // Becomes writable and receiving |
EXPECT_TRUE(!ch.allocator_session()->IsGettingPorts()); |
@@ -2945,24 +2867,25 @@ |
// destroyed. |
TEST_F(P2PTransportChannelPingTest, |
TestIceRoleUpdatedOnPortAfterSignalNetworkInactive) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", ICE_CANDIDATE_COMPONENT_DEFAULT, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch( |
+ "test channel", cricket::ICE_CANDIDATE_COMPONENT_DEFAULT, &pa); |
// Starts with ICEROLE_CONTROLLING. |
PrepareChannel(&ch); |
- IceConfig config = CreateIceConfig(1000, true); |
+ cricket::IceConfig config = CreateIceConfig(1000, true); |
ch.SetIceConfig(config); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- |
- Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ |
+ cricket::Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn != nullptr); |
// Make the fake port signal that its network is inactive, then change the |
// ICE role and expect it to be updated. |
conn->port()->SignalNetworkInactive(conn->port()); |
- ch.SetIceRole(ICEROLE_CONTROLLED); |
- EXPECT_EQ(ICEROLE_CONTROLLED, conn->port()->GetIceRole()); |
+ ch.SetIceRole(cricket::ICEROLE_CONTROLLED); |
+ EXPECT_EQ(cricket::ICEROLE_CONTROLLED, conn->port()->GetIceRole()); |
} |
// Test that the ICE role is updated even on ports with inactive networks. |
@@ -2970,23 +2893,24 @@ |
// pings sent by those connections until they're replaced by newer-generation |
// connections. |
TEST_F(P2PTransportChannelPingTest, TestIceRoleUpdatedOnPortAfterIceRestart) { |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", ICE_CANDIDATE_COMPONENT_DEFAULT, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch( |
+ "test channel", cricket::ICE_CANDIDATE_COMPONENT_DEFAULT, &pa); |
// Starts with ICEROLE_CONTROLLING. |
PrepareChannel(&ch); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- |
- Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ |
+ cricket::Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn != nullptr); |
// Do an ICE restart, change the role, and expect the old port to have its |
// role updated. |
ch.SetIceCredentials(kIceUfrag[1], kIcePwd[1]); |
ch.MaybeStartGathering(); |
- ch.SetIceRole(ICEROLE_CONTROLLED); |
- EXPECT_EQ(ICEROLE_CONTROLLED, conn->port()->GetIceRole()); |
+ ch.SetIceRole(cricket::ICEROLE_CONTROLLED); |
+ EXPECT_EQ(cricket::ICEROLE_CONTROLLED, conn->port()->GetIceRole()); |
} |
// Test that after some amount of time without receiving data, the connection |
@@ -2994,16 +2918,17 @@ |
TEST_F(P2PTransportChannelPingTest, TestPortDestroyedAfterTimeout) { |
rtc::ScopedFakeClock fake_clock; |
- FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- P2PTransportChannel ch("test channel", ICE_CANDIDATE_COMPONENT_DEFAULT, &pa); |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch( |
+ "test channel", cricket::ICE_CANDIDATE_COMPONENT_DEFAULT, &pa); |
PrepareChannel(&ch); |
// Only a controlled channel should expect its ports to be destroyed. |
- ch.SetIceRole(ICEROLE_CONTROLLED); |
+ ch.SetIceRole(cricket::ICEROLE_CONTROLLED); |
ch.Connect(); |
ch.MaybeStartGathering(); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
- |
- Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
+ |
+ cricket::Connection* conn = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
ASSERT_TRUE(conn != nullptr); |
// Simulate 2 minutes going by. This should be enough time for the port to |
@@ -3021,23 +2946,26 @@ |
P2PTransportChannelMostLikelyToWorkFirstTest() |
: turn_server_(rtc::Thread::Current(), kTurnUdpIntAddr, kTurnUdpExtAddr) { |
network_manager_.AddInterface(kPublicAddrs[0]); |
- allocator_.reset(new BasicPortAllocator( |
+ allocator_.reset(new cricket::BasicPortAllocator( |
&network_manager_, ServerAddresses(), rtc::SocketAddress(), |
rtc::SocketAddress(), rtc::SocketAddress())); |
- allocator_->set_flags(allocator_->flags() | PORTALLOCATOR_DISABLE_STUN | |
- PORTALLOCATOR_DISABLE_TCP); |
- RelayServerConfig config(RELAY_TURN); |
+ allocator_->set_flags(allocator_->flags() | |
+ cricket::PORTALLOCATOR_DISABLE_STUN | |
+ cricket::PORTALLOCATOR_DISABLE_TCP); |
+ cricket::RelayServerConfig config(cricket::RELAY_TURN); |
config.credentials = kRelayCredentials; |
- config.ports.push_back(ProtocolAddress(kTurnUdpIntAddr, PROTO_UDP, false)); |
+ config.ports.push_back( |
+ cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false)); |
allocator_->AddTurnServer(config); |
allocator_->set_step_delay(kMinimumStepDelay); |
} |
- P2PTransportChannel& StartTransportChannel( |
+ cricket::P2PTransportChannel& StartTransportChannel( |
bool prioritize_most_likely_to_work, |
int stable_writable_connection_ping_interval) { |
- channel_.reset(new P2PTransportChannel("checks", 1, nullptr, allocator())); |
- IceConfig config = channel_->config(); |
+ channel_.reset( |
+ new cricket::P2PTransportChannel("checks", 1, nullptr, allocator())); |
+ cricket::IceConfig config = channel_->config(); |
config.prioritize_most_likely_candidate_pairs = |
prioritize_most_likely_to_work; |
config.stable_writable_connection_ping_interval = |
@@ -3049,8 +2977,8 @@ |
return *channel_.get(); |
} |
- BasicPortAllocator* allocator() { return allocator_.get(); } |
- TestTurnServer* turn_server() { return &turn_server_; } |
+ cricket::BasicPortAllocator* allocator() { return allocator_.get(); } |
+ cricket::TestTurnServer* turn_server() { return &turn_server_; } |
// This verifies the next pingable connection has the expected candidates' |
// types and, for relay local candidate, the expected relay protocol and ping |
@@ -3058,20 +2986,30 @@ |
void VerifyNextPingableConnection( |
const std::string& local_candidate_type, |
const std::string& remote_candidate_type, |
- const std::string& relay_protocol_type = UDP_PROTOCOL_NAME) { |
- Connection* conn = FindNextPingableConnectionAndPingIt(channel_.get()); |
+ const std::string& relay_protocol_type = cricket::UDP_PROTOCOL_NAME) { |
+ cricket::Connection* conn = |
+ FindNextPingableConnectionAndPingIt(channel_.get()); |
EXPECT_EQ(conn->local_candidate().type(), local_candidate_type); |
- if (conn->local_candidate().type() == RELAY_PORT_TYPE) { |
+ if (conn->local_candidate().type() == cricket::RELAY_PORT_TYPE) { |
EXPECT_EQ(conn->local_candidate().relay_protocol(), relay_protocol_type); |
} |
EXPECT_EQ(conn->remote_candidate().type(), remote_candidate_type); |
} |
+ cricket::Candidate CreateRelayCandidate(const std::string& ip, |
+ int port, |
+ int priority, |
+ const std::string& ufrag = "") { |
+ cricket::Candidate c = CreateHostCandidate(ip, port, priority, ufrag); |
+ c.set_type(cricket::RELAY_PORT_TYPE); |
+ return c; |
+ } |
+ |
private: |
- std::unique_ptr<BasicPortAllocator> allocator_; |
+ std::unique_ptr<cricket::BasicPortAllocator> allocator_; |
rtc::FakeNetworkManager network_manager_; |
- TestTurnServer turn_server_; |
- std::unique_ptr<P2PTransportChannel> channel_; |
+ cricket::TestTurnServer turn_server_; |
+ std::unique_ptr<cricket::P2PTransportChannel> channel_; |
}; |
// Test that Relay/Relay connections will be pinged first when no other |
@@ -3080,32 +3018,33 @@ |
TEST_F(P2PTransportChannelMostLikelyToWorkFirstTest, |
TestRelayRelayFirstWhenNothingPingedYet) { |
const int max_strong_interval = 100; |
- P2PTransportChannel& ch = StartTransportChannel(true, max_strong_interval); |
+ cricket::P2PTransportChannel& ch = |
+ StartTransportChannel(true, max_strong_interval); |
EXPECT_TRUE_WAIT(ch.ports().size() == 2, 5000); |
- EXPECT_EQ(ch.ports()[0]->Type(), LOCAL_PORT_TYPE); |
- EXPECT_EQ(ch.ports()[1]->Type(), RELAY_PORT_TYPE); |
- |
- ch.AddRemoteCandidate(CreateUdpCandidate(RELAY_PORT_TYPE, "1.1.1.1", 1, 1)); |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 2)); |
+ EXPECT_EQ(ch.ports()[0]->Type(), cricket::LOCAL_PORT_TYPE); |
+ EXPECT_EQ(ch.ports()[1]->Type(), cricket::RELAY_PORT_TYPE); |
+ |
+ ch.AddRemoteCandidate(CreateRelayCandidate("1.1.1.1", 1, 1)); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2)); |
EXPECT_TRUE_WAIT(ch.connections().size() == 4, 5000); |
// Relay/Relay should be the first pingable connection. |
- Connection* conn = FindNextPingableConnectionAndPingIt(&ch); |
- EXPECT_EQ(conn->local_candidate().type(), RELAY_PORT_TYPE); |
- EXPECT_EQ(conn->remote_candidate().type(), RELAY_PORT_TYPE); |
+ cricket::Connection* conn = FindNextPingableConnectionAndPingIt(&ch); |
+ EXPECT_EQ(conn->local_candidate().type(), cricket::RELAY_PORT_TYPE); |
+ EXPECT_EQ(conn->remote_candidate().type(), cricket::RELAY_PORT_TYPE); |
// Unless that we have a trigger check waiting to be pinged. |
- Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
- EXPECT_EQ(conn2->local_candidate().type(), LOCAL_PORT_TYPE); |
- EXPECT_EQ(conn2->remote_candidate().type(), LOCAL_PORT_TYPE); |
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2); |
+ EXPECT_EQ(conn2->local_candidate().type(), cricket::LOCAL_PORT_TYPE); |
+ EXPECT_EQ(conn2->remote_candidate().type(), cricket::LOCAL_PORT_TYPE); |
conn2->ReceivedPing(); |
EXPECT_EQ(conn2, FindNextPingableConnectionAndPingIt(&ch)); |
// Make conn3 the best connection. |
- Connection* conn3 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
- EXPECT_EQ(conn3->local_candidate().type(), LOCAL_PORT_TYPE); |
- EXPECT_EQ(conn3->remote_candidate().type(), RELAY_PORT_TYPE); |
+ cricket::Connection* conn3 = WaitForConnectionTo(&ch, "1.1.1.1", 1); |
+ EXPECT_EQ(conn3->local_candidate().type(), cricket::LOCAL_PORT_TYPE); |
+ EXPECT_EQ(conn3->remote_candidate().type(), cricket::RELAY_PORT_TYPE); |
conn3->ReceivedPingResponse(LOW_RTT); |
ASSERT_TRUE(conn3->writable()); |
conn3->ReceivedPing(); |
@@ -3135,95 +3074,107 @@ |
// in the first round. |
TEST_F(P2PTransportChannelMostLikelyToWorkFirstTest, |
TestRelayRelayFirstWhenEverythingPinged) { |
- P2PTransportChannel& ch = StartTransportChannel(true, 100); |
+ cricket::P2PTransportChannel& ch = StartTransportChannel(true, 100); |
EXPECT_TRUE_WAIT(ch.ports().size() == 2, 5000); |
- EXPECT_EQ(ch.ports()[0]->Type(), LOCAL_PORT_TYPE); |
- EXPECT_EQ(ch.ports()[1]->Type(), RELAY_PORT_TYPE); |
- |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "1.1.1.1", 1, 1)); |
+ EXPECT_EQ(ch.ports()[0]->Type(), cricket::LOCAL_PORT_TYPE); |
+ EXPECT_EQ(ch.ports()[1]->Type(), cricket::RELAY_PORT_TYPE); |
+ |
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1)); |
EXPECT_TRUE_WAIT(ch.connections().size() == 2, 5000); |
// Initially, only have Local/Local and Local/Relay. |
- VerifyNextPingableConnection(LOCAL_PORT_TYPE, LOCAL_PORT_TYPE); |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, LOCAL_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::LOCAL_PORT_TYPE, |
+ cricket::LOCAL_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::LOCAL_PORT_TYPE); |
// Remote Relay candidate arrives. |
- ch.AddRemoteCandidate(CreateUdpCandidate(RELAY_PORT_TYPE, "2.2.2.2", 2, 2)); |
+ ch.AddRemoteCandidate(CreateRelayCandidate("2.2.2.2", 2, 2)); |
EXPECT_TRUE_WAIT(ch.connections().size() == 4, 5000); |
// Relay/Relay should be the first since it hasn't been pinged before. |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
// Local/Relay is the final one. |
- VerifyNextPingableConnection(LOCAL_PORT_TYPE, RELAY_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::LOCAL_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
// Now, every connection has been pinged once. The next one should be |
// Relay/Relay. |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
} |
// Test that when we receive a new remote candidate, they will be tried first |
// before we re-ping Relay/Relay connections again. |
TEST_F(P2PTransportChannelMostLikelyToWorkFirstTest, |
TestNoStarvationOnNonRelayConnection) { |
- P2PTransportChannel& ch = StartTransportChannel(true, 100); |
+ cricket::P2PTransportChannel& ch = StartTransportChannel(true, 100); |
EXPECT_TRUE_WAIT(ch.ports().size() == 2, 5000); |
- EXPECT_EQ(ch.ports()[0]->Type(), LOCAL_PORT_TYPE); |
- EXPECT_EQ(ch.ports()[1]->Type(), RELAY_PORT_TYPE); |
- |
- ch.AddRemoteCandidate(CreateUdpCandidate(RELAY_PORT_TYPE, "1.1.1.1", 1, 1)); |
+ EXPECT_EQ(ch.ports()[0]->Type(), cricket::LOCAL_PORT_TYPE); |
+ EXPECT_EQ(ch.ports()[1]->Type(), cricket::RELAY_PORT_TYPE); |
+ |
+ ch.AddRemoteCandidate(CreateRelayCandidate("1.1.1.1", 1, 1)); |
EXPECT_TRUE_WAIT(ch.connections().size() == 2, 5000); |
// Initially, only have Relay/Relay and Local/Relay. Ping Relay/Relay first. |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
// Next, ping Local/Relay. |
- VerifyNextPingableConnection(LOCAL_PORT_TYPE, RELAY_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::LOCAL_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
// Remote Local candidate arrives. |
- ch.AddRemoteCandidate(CreateUdpCandidate(LOCAL_PORT_TYPE, "2.2.2.2", 2, 2)); |
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2)); |
EXPECT_TRUE_WAIT(ch.connections().size() == 4, 5000); |
// Local/Local should be the first since it hasn't been pinged before. |
- VerifyNextPingableConnection(LOCAL_PORT_TYPE, LOCAL_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::LOCAL_PORT_TYPE, |
+ cricket::LOCAL_PORT_TYPE); |
// Relay/Local is the final one. |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, LOCAL_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::LOCAL_PORT_TYPE); |
// Now, every connection has been pinged once. The next one should be |
// Relay/Relay. |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
} |
// Test the ping sequence is UDP Relay/Relay followed by TCP Relay/Relay, |
// followed by the rest. |
TEST_F(P2PTransportChannelMostLikelyToWorkFirstTest, TestTcpTurn) { |
// Add a Tcp Turn server. |
- turn_server()->AddInternalSocket(kTurnTcpIntAddr, PROTO_TCP); |
- RelayServerConfig config(RELAY_TURN); |
+ turn_server()->AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
+ cricket::RelayServerConfig config(cricket::RELAY_TURN); |
config.credentials = kRelayCredentials; |
- config.ports.push_back(ProtocolAddress(kTurnTcpIntAddr, PROTO_TCP, false)); |
+ config.ports.push_back( |
+ cricket::ProtocolAddress(kTurnTcpIntAddr, cricket::PROTO_TCP, false)); |
allocator()->AddTurnServer(config); |
- P2PTransportChannel& ch = StartTransportChannel(true, 100); |
+ cricket::P2PTransportChannel& ch = StartTransportChannel(true, 100); |
EXPECT_TRUE_WAIT(ch.ports().size() == 3, 5000); |
- EXPECT_EQ(ch.ports()[0]->Type(), LOCAL_PORT_TYPE); |
- EXPECT_EQ(ch.ports()[1]->Type(), RELAY_PORT_TYPE); |
- EXPECT_EQ(ch.ports()[2]->Type(), RELAY_PORT_TYPE); |
+ EXPECT_EQ(ch.ports()[0]->Type(), cricket::LOCAL_PORT_TYPE); |
+ EXPECT_EQ(ch.ports()[1]->Type(), cricket::RELAY_PORT_TYPE); |
+ EXPECT_EQ(ch.ports()[2]->Type(), cricket::RELAY_PORT_TYPE); |
// Remote Relay candidate arrives. |
- ch.AddRemoteCandidate(CreateUdpCandidate(RELAY_PORT_TYPE, "1.1.1.1", 1, 1)); |
+ ch.AddRemoteCandidate(CreateRelayCandidate("1.1.1.1", 1, 1)); |
EXPECT_TRUE_WAIT(ch.connections().size() == 3, 5000); |
// UDP Relay/Relay should be pinged first. |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
// TCP Relay/Relay is the next. |
- VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE, |
- TCP_PROTOCOL_NAME); |
+ VerifyNextPingableConnection(cricket::RELAY_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE, |
+ cricket::TCP_PROTOCOL_NAME); |
// Finally, Local/Relay will be pinged. |
- VerifyNextPingableConnection(LOCAL_PORT_TYPE, RELAY_PORT_TYPE); |
-} |
- |
-} // namespace cricket { |
+ VerifyNextPingableConnection(cricket::LOCAL_PORT_TYPE, |
+ cricket::RELAY_PORT_TYPE); |
+} |