Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: webrtc/p2p/base/port_unittest.cc

Issue 1619213003: Include relay protocol type when computing the turn candidate foundation. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/p2p/base/port.cc ('k') | webrtc/p2p/base/testturnserver.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 static const SocketAddress kNatAddr1("77.77.77.77", rtc::NAT_SERVER_UDP_PORT); 51 static const SocketAddress kNatAddr1("77.77.77.77", rtc::NAT_SERVER_UDP_PORT);
52 static const SocketAddress kNatAddr2("88.88.88.88", rtc::NAT_SERVER_UDP_PORT); 52 static const SocketAddress kNatAddr2("88.88.88.88", rtc::NAT_SERVER_UDP_PORT);
53 static const SocketAddress kStunAddr("99.99.99.1", STUN_SERVER_PORT); 53 static const SocketAddress kStunAddr("99.99.99.1", STUN_SERVER_PORT);
54 static const SocketAddress kRelayUdpIntAddr("99.99.99.2", 5000); 54 static const SocketAddress kRelayUdpIntAddr("99.99.99.2", 5000);
55 static const SocketAddress kRelayUdpExtAddr("99.99.99.3", 5001); 55 static const SocketAddress kRelayUdpExtAddr("99.99.99.3", 5001);
56 static const SocketAddress kRelayTcpIntAddr("99.99.99.2", 5002); 56 static const SocketAddress kRelayTcpIntAddr("99.99.99.2", 5002);
57 static const SocketAddress kRelayTcpExtAddr("99.99.99.3", 5003); 57 static const SocketAddress kRelayTcpExtAddr("99.99.99.3", 5003);
58 static const SocketAddress kRelaySslTcpIntAddr("99.99.99.2", 5004); 58 static const SocketAddress kRelaySslTcpIntAddr("99.99.99.2", 5004);
59 static const SocketAddress kRelaySslTcpExtAddr("99.99.99.3", 5005); 59 static const SocketAddress kRelaySslTcpExtAddr("99.99.99.3", 5005);
60 static const SocketAddress kTurnUdpIntAddr("99.99.99.4", STUN_SERVER_PORT); 60 static const SocketAddress kTurnUdpIntAddr("99.99.99.4", STUN_SERVER_PORT);
61 static const SocketAddress kTurnTcpIntAddr("99.99.99.4", 5010);
61 static const SocketAddress kTurnUdpExtAddr("99.99.99.5", 0); 62 static const SocketAddress kTurnUdpExtAddr("99.99.99.5", 0);
62 static const RelayCredentials kRelayCredentials("test", "test"); 63 static const RelayCredentials kRelayCredentials("test", "test");
63 64
64 // TODO: Update these when RFC5245 is completely supported. 65 // TODO: Update these when RFC5245 is completely supported.
65 // Magic value of 30 is from RFC3484, for IPv4 addresses. 66 // Magic value of 30 is from RFC3484, for IPv4 addresses.
66 static const uint32_t kDefaultPrflxPriority = 67 static const uint32_t kDefaultPrflxPriority =
67 ICE_TYPE_PREFERENCE_PRFLX << 24 | 30 << 8 | 68 ICE_TYPE_PREFERENCE_PRFLX << 24 | 30 << 8 |
68 (256 - ICE_CANDIDATE_COMPONENT_DEFAULT); 69 (256 - ICE_CANDIDATE_COMPONENT_DEFAULT);
69 70
70 static const int kTiebreaker1 = 11111; 71 static const int kTiebreaker1 = 11111;
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 ProtocolType int_proto, ProtocolType ext_proto) { 491 ProtocolType int_proto, ProtocolType ext_proto) {
491 if (rtype == RELAY_TURN) { 492 if (rtype == RELAY_TURN) {
492 return CreateTurnPort(addr, &socket_factory_, int_proto, ext_proto); 493 return CreateTurnPort(addr, &socket_factory_, int_proto, ext_proto);
493 } else { 494 } else {
494 return CreateGturnPort(addr, int_proto, ext_proto); 495 return CreateGturnPort(addr, int_proto, ext_proto);
495 } 496 }
496 } 497 }
497 TurnPort* CreateTurnPort(const SocketAddress& addr, 498 TurnPort* CreateTurnPort(const SocketAddress& addr,
498 PacketSocketFactory* socket_factory, 499 PacketSocketFactory* socket_factory,
499 ProtocolType int_proto, ProtocolType ext_proto) { 500 ProtocolType int_proto, ProtocolType ext_proto) {
500 return CreateTurnPort(addr, socket_factory, 501 SocketAddress server_addr =
501 int_proto, ext_proto, kTurnUdpIntAddr); 502 int_proto == PROTO_TCP ? kTurnTcpIntAddr : kTurnUdpIntAddr;
503 return CreateTurnPort(addr, socket_factory, int_proto, ext_proto,
504 server_addr);
502 } 505 }
503 TurnPort* CreateTurnPort(const SocketAddress& addr, 506 TurnPort* CreateTurnPort(const SocketAddress& addr,
504 PacketSocketFactory* socket_factory, 507 PacketSocketFactory* socket_factory,
505 ProtocolType int_proto, ProtocolType ext_proto, 508 ProtocolType int_proto, ProtocolType ext_proto,
506 const rtc::SocketAddress& server_addr) { 509 const rtc::SocketAddress& server_addr) {
507 return TurnPort::Create(main_, socket_factory, &network_, 510 return TurnPort::Create(main_, socket_factory, &network_, addr.ipaddr(), 0,
508 addr.ipaddr(), 0, 0, 511 0, username_, password_,
509 username_, password_, ProtocolAddress( 512 ProtocolAddress(server_addr, int_proto),
510 server_addr, PROTO_UDP), 513 kRelayCredentials, 0, std::string());
511 kRelayCredentials, 0,
512 std::string());
513 } 514 }
514 RelayPort* CreateGturnPort(const SocketAddress& addr, 515 RelayPort* CreateGturnPort(const SocketAddress& addr,
515 ProtocolType int_proto, ProtocolType ext_proto) { 516 ProtocolType int_proto, ProtocolType ext_proto) {
516 RelayPort* port = CreateGturnPort(addr); 517 RelayPort* port = CreateGturnPort(addr);
517 SocketAddress addrs[] = 518 SocketAddress addrs[] =
518 { kRelayUdpIntAddr, kRelayTcpIntAddr, kRelaySslTcpIntAddr }; 519 { kRelayUdpIntAddr, kRelayTcpIntAddr, kRelaySslTcpIntAddr };
519 port->AddServerAddress(ProtocolAddress(addrs[int_proto], int_proto)); 520 port->AddServerAddress(ProtocolAddress(addrs[int_proto], int_proto));
520 return port; 521 return port;
521 } 522 }
522 RelayPort* CreateGturnPort(const SocketAddress& addr) { 523 RelayPort* CreateGturnPort(const SocketAddress& addr) {
(...skipping 1632 matching lines...) Expand 10 before | Expand all | Expand 10 after
2155 SocketAddress kTurnUdpExtAddr2("99.99.98.5", 0); 2156 SocketAddress kTurnUdpExtAddr2("99.99.98.5", 0);
2156 TestTurnServer turn_server2( 2157 TestTurnServer turn_server2(
2157 rtc::Thread::Current(), kTurnUdpIntAddr2, kTurnUdpExtAddr2); 2158 rtc::Thread::Current(), kTurnUdpIntAddr2, kTurnUdpExtAddr2);
2158 rtc::scoped_ptr<Port> turnport3(CreateTurnPort( 2159 rtc::scoped_ptr<Port> turnport3(CreateTurnPort(
2159 kLocalAddr1, nat_socket_factory1(), PROTO_UDP, PROTO_UDP, 2160 kLocalAddr1, nat_socket_factory1(), PROTO_UDP, PROTO_UDP,
2160 kTurnUdpIntAddr2)); 2161 kTurnUdpIntAddr2));
2161 turnport3->PrepareAddress(); 2162 turnport3->PrepareAddress();
2162 ASSERT_EQ_WAIT(1U, turnport3->Candidates().size(), kTimeout); 2163 ASSERT_EQ_WAIT(1U, turnport3->Candidates().size(), kTimeout);
2163 EXPECT_NE(turnport3->Candidates()[0].foundation(), 2164 EXPECT_NE(turnport3->Candidates()[0].foundation(),
2164 turnport2->Candidates()[0].foundation()); 2165 turnport2->Candidates()[0].foundation());
2166
2167 // Start a TCP turn server, and check that two turn candidates have
2168 // different foundations if their relay protocols are different.
2169 TestTurnServer turn_server3(rtc::Thread::Current(), kTurnTcpIntAddr,
2170 kTurnUdpExtAddr, PROTO_TCP);
2171 rtc::scoped_ptr<Port> turnport4(
2172 CreateTurnPort(kLocalAddr1, nat_socket_factory1(), PROTO_TCP, PROTO_UDP));
2173 turnport4->PrepareAddress();
2174 ASSERT_EQ_WAIT(1U, turnport4->Candidates().size(), kTimeout);
2175 EXPECT_NE(turnport2->Candidates()[0].foundation(),
2176 turnport4->Candidates()[0].foundation());
2165 } 2177 }
2166 2178
2167 // This test verifies the related addresses of different types of 2179 // This test verifies the related addresses of different types of
2168 // ICE candiates. 2180 // ICE candiates.
2169 TEST_F(PortTest, TestCandidateRelatedAddress) { 2181 TEST_F(PortTest, TestCandidateRelatedAddress) {
2170 rtc::scoped_ptr<rtc::NATServer> nat_server( 2182 rtc::scoped_ptr<rtc::NATServer> nat_server(
2171 CreateNatServer(kNatAddr1, NAT_OPEN_CONE)); 2183 CreateNatServer(kNatAddr1, NAT_OPEN_CONE));
2172 rtc::scoped_ptr<UDPPort> udpport(CreateUdpPort(kLocalAddr1)); 2184 rtc::scoped_ptr<UDPPort> udpport(CreateUdpPort(kLocalAddr1));
2173 udpport->PrepareAddress(); 2185 udpport->PrepareAddress();
2174 // For UDPPort, related address will be empty. 2186 // For UDPPort, related address will be empty.
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
2524 rtc::scoped_ptr<Port> tcp_port(CreateTcpPort(kLocalAddr1)); 2536 rtc::scoped_ptr<Port> tcp_port(CreateTcpPort(kLocalAddr1));
2525 EXPECT_TRUE(tcp_port->SupportsProtocol(TCP_PROTOCOL_NAME)); 2537 EXPECT_TRUE(tcp_port->SupportsProtocol(TCP_PROTOCOL_NAME));
2526 EXPECT_TRUE(tcp_port->SupportsProtocol(SSLTCP_PROTOCOL_NAME)); 2538 EXPECT_TRUE(tcp_port->SupportsProtocol(SSLTCP_PROTOCOL_NAME));
2527 EXPECT_FALSE(tcp_port->SupportsProtocol(UDP_PROTOCOL_NAME)); 2539 EXPECT_FALSE(tcp_port->SupportsProtocol(UDP_PROTOCOL_NAME));
2528 2540
2529 rtc::scoped_ptr<Port> turn_port( 2541 rtc::scoped_ptr<Port> turn_port(
2530 CreateTurnPort(kLocalAddr1, nat_socket_factory1(), PROTO_UDP, PROTO_UDP)); 2542 CreateTurnPort(kLocalAddr1, nat_socket_factory1(), PROTO_UDP, PROTO_UDP));
2531 EXPECT_TRUE(turn_port->SupportsProtocol(UDP_PROTOCOL_NAME)); 2543 EXPECT_TRUE(turn_port->SupportsProtocol(UDP_PROTOCOL_NAME));
2532 EXPECT_FALSE(turn_port->SupportsProtocol(TCP_PROTOCOL_NAME)); 2544 EXPECT_FALSE(turn_port->SupportsProtocol(TCP_PROTOCOL_NAME));
2533 } 2545 }
OLDNEW
« no previous file with comments | « webrtc/p2p/base/port.cc ('k') | webrtc/p2p/base/testturnserver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698