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

Side by Side Diff: webrtc/p2p/client/portallocator_unittest.cc

Issue 1275703006: Bug 4517: Enable connectivity for demo page when no STUN/TURN specifiefd. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 4 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/client/fakeportallocator.h ('k') | no next file » | 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 2009 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2009 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 18 matching lines...) Expand all
29 #include "webrtc/base/socketaddress.h" 29 #include "webrtc/base/socketaddress.h"
30 #include "webrtc/base/ssladapter.h" 30 #include "webrtc/base/ssladapter.h"
31 #include "webrtc/base/thread.h" 31 #include "webrtc/base/thread.h"
32 #include "webrtc/base/virtualsocketserver.h" 32 #include "webrtc/base/virtualsocketserver.h"
33 33
34 using cricket::ServerAddresses; 34 using cricket::ServerAddresses;
35 using rtc::SocketAddress; 35 using rtc::SocketAddress;
36 using rtc::Thread; 36 using rtc::Thread;
37 37
38 static const SocketAddress kClientAddr("11.11.11.11", 0); 38 static const SocketAddress kClientAddr("11.11.11.11", 0);
39 static const SocketAddress kLoopbackAddr("127.0.0.1", 0);
39 static const SocketAddress kPrivateAddr("192.168.1.11", 0); 40 static const SocketAddress kPrivateAddr("192.168.1.11", 0);
40 static const SocketAddress kPrivateAddr2("192.168.1.12", 0); 41 static const SocketAddress kPrivateAddr2("192.168.1.12", 0);
41 static const SocketAddress kClientIPv6Addr( 42 static const SocketAddress kClientIPv6Addr(
42 "2401:fa00:4:1000:be30:5bff:fee5:c3", 0); 43 "2401:fa00:4:1000:be30:5bff:fee5:c3", 0);
43 static const SocketAddress kClientAddr2("22.22.22.22", 0); 44 static const SocketAddress kClientAddr2("22.22.22.22", 0);
44 static const SocketAddress kNatUdpAddr("77.77.77.77", rtc::NAT_SERVER_UDP_PORT); 45 static const SocketAddress kNatUdpAddr("77.77.77.77", rtc::NAT_SERVER_UDP_PORT);
45 static const SocketAddress kNatTcpAddr("77.77.77.77", rtc::NAT_SERVER_TCP_PORT); 46 static const SocketAddress kNatTcpAddr("77.77.77.77", rtc::NAT_SERVER_TCP_PORT);
46 static const SocketAddress kRemoteClientAddr("22.22.22.22", 0); 47 static const SocketAddress kRemoteClientAddr("22.22.22.22", 0);
47 static const SocketAddress kStunAddr("99.99.99.1", cricket::STUN_SERVER_PORT); 48 static const SocketAddress kStunAddr("99.99.99.1", cricket::STUN_SERVER_PORT);
48 static const SocketAddress kRelayUdpIntAddr("99.99.99.2", 5000); 49 static const SocketAddress kRelayUdpIntAddr("99.99.99.2", 5000);
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 } 237 }
237 } 238 }
238 239
239 // This function starts the port/address gathering and check the existence of 240 // This function starts the port/address gathering and check the existence of
240 // candidates as specified. When |expect_stun_candidate| is true, 241 // candidates as specified. When |expect_stun_candidate| is true,
241 // |stun_candidate_addr| carries the expected reflective address, which is 242 // |stun_candidate_addr| carries the expected reflective address, which is
242 // also the related address for TURN candidate if it is expected. Otherwise, 243 // also the related address for TURN candidate if it is expected. Otherwise,
243 // it should be ignore. 244 // it should be ignore.
244 void CheckDisableAdapterEnumeration( 245 void CheckDisableAdapterEnumeration(
245 uint32 total_ports, 246 uint32 total_ports,
247 const rtc::IPAddress& host_candidate_addr,
246 const rtc::IPAddress& stun_candidate_addr, 248 const rtc::IPAddress& stun_candidate_addr,
247 const rtc::IPAddress& relay_candidate_udp_transport_addr, 249 const rtc::IPAddress& relay_candidate_udp_transport_addr,
248 const rtc::IPAddress& relay_candidate_tcp_transport_addr) { 250 const rtc::IPAddress& relay_candidate_tcp_transport_addr) {
249 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 251 if (!session_) {
250 session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION | 252 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
253 }
254 session_->set_flags(session_->flags() |
255 cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION |
251 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | 256 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
252 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); 257 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
253 allocator().set_allow_tcp_listen(false); 258 allocator().set_allow_tcp_listen(false);
254 session_->StartGettingPorts(); 259 session_->StartGettingPorts();
255 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 260 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
256 261
257 uint32 total_candidates = 0; 262 uint32 total_candidates = 0;
263 if (!host_candidate_addr.IsNil()) {
264 EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
265 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp",
266 rtc::SocketAddress(host_candidate_addr, 0));
267 ++total_candidates;
268 }
258 if (!stun_candidate_addr.IsNil()) { 269 if (!stun_candidate_addr.IsNil()) {
259 ++total_candidates; 270 EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
260 EXPECT_PRED5(CheckCandidate, candidates_[0],
261 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", 271 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp",
262 rtc::SocketAddress(stun_candidate_addr, 0)); 272 rtc::SocketAddress(stun_candidate_addr, 0));
263 EXPECT_EQ( 273 EXPECT_EQ(rtc::EmptySocketAddressWithFamily(
264 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family()), 274 candidates_[total_candidates].address().family()),
265 candidates_[0].related_address()); 275 candidates_[total_candidates].related_address());
276 ++total_candidates;
266 } 277 }
267 if (!relay_candidate_udp_transport_addr.IsNil()) { 278 if (!relay_candidate_udp_transport_addr.IsNil()) {
268 ++total_candidates; 279 EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
269 EXPECT_PRED5(CheckCandidate, candidates_[1],
270 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", 280 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp",
271 rtc::SocketAddress(relay_candidate_udp_transport_addr, 0)); 281 rtc::SocketAddress(relay_candidate_udp_transport_addr, 0));
272 EXPECT_EQ(stun_candidate_addr, candidates_[1].related_address().ipaddr()); 282 EXPECT_EQ(stun_candidate_addr,
283 candidates_[total_candidates].related_address().ipaddr());
284 ++total_candidates;
273 } 285 }
274 if (!relay_candidate_tcp_transport_addr.IsNil()) { 286 if (!relay_candidate_tcp_transport_addr.IsNil()) {
275 ++total_candidates; 287 EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
276 EXPECT_PRED5(CheckCandidate, candidates_[2],
277 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", 288 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp",
278 rtc::SocketAddress(relay_candidate_tcp_transport_addr, 0)); 289 rtc::SocketAddress(relay_candidate_tcp_transport_addr, 0));
279 EXPECT_EQ(stun_candidate_addr, candidates_[2].related_address().ipaddr()); 290 EXPECT_EQ(stun_candidate_addr,
291 candidates_[total_candidates].related_address().ipaddr());
292 ++total_candidates;
280 } 293 }
281 294
282 EXPECT_EQ(total_candidates, candidates_.size()); 295 EXPECT_EQ(total_candidates, candidates_.size());
283 EXPECT_EQ(total_ports, ports_.size()); 296 EXPECT_EQ(total_ports, ports_.size());
284 } 297 }
285 298
286 protected: 299 protected:
287 cricket::BasicPortAllocator& allocator() { 300 cricket::BasicPortAllocator& allocator() {
288 return *allocator_; 301 return *allocator_;
289 } 302 }
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 session_->StartGettingPorts(); 389 session_->StartGettingPorts();
377 // Waiting for one second to make sure BasicPortAllocatorSession has not 390 // Waiting for one second to make sure BasicPortAllocatorSession has not
378 // called OnAllocate multiple times. In old behavior it's called every 250ms. 391 // called OnAllocate multiple times. In old behavior it's called every 250ms.
379 // When there are no network interfaces, each execution of OnAllocate will 392 // When there are no network interfaces, each execution of OnAllocate will
380 // result in SignalCandidatesAllocationDone signal. 393 // result in SignalCandidatesAllocationDone signal.
381 rtc::Thread::Current()->ProcessMessages(1000); 394 rtc::Thread::Current()->ProcessMessages(1000);
382 EXPECT_TRUE(candidate_allocation_done_); 395 EXPECT_TRUE(candidate_allocation_done_);
383 EXPECT_EQ(0U, candidates_.size()); 396 EXPECT_EQ(0U, candidates_.size());
384 } 397 }
385 398
399 // Test that we could use loopback interface as host candidate.
400 TEST_F(PortAllocatorTest, TestLoopbackNetworkInterface) {
401 AddInterface(kLoopbackAddr);
402 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
403 session_->set_flags(cricket::PORTALLOCATOR_DISABLE_STUN |
404 cricket::PORTALLOCATOR_DISABLE_RELAY |
405 cricket::PORTALLOCATOR_DISABLE_TCP);
406 session_->StartGettingPorts();
407 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
408 EXPECT_EQ(1U, candidates_.size());
409 }
410
386 // Tests that we can get all the desired addresses successfully. 411 // Tests that we can get all the desired addresses successfully.
387 TEST_F(PortAllocatorTest, TestGetAllPortsWithMinimumStepDelay) { 412 TEST_F(PortAllocatorTest, TestGetAllPortsWithMinimumStepDelay) {
388 AddInterface(kClientAddr); 413 AddInterface(kClientAddr);
389 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 414 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
390 session_->StartGettingPorts(); 415 session_->StartGettingPorts();
391 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); 416 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout);
392 EXPECT_EQ(4U, ports_.size()); 417 EXPECT_EQ(4U, ports_.size());
393 EXPECT_PRED5(CheckCandidate, candidates_[0], 418 EXPECT_PRED5(CheckCandidate, candidates_[0],
394 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 419 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
395 EXPECT_PRED5(CheckCandidate, candidates_[1], 420 EXPECT_PRED5(CheckCandidate, candidates_[1],
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 527
503 // Test that we should only get STUN and TURN candidates when adapter 528 // Test that we should only get STUN and TURN candidates when adapter
504 // enumeration is disabled. 529 // enumeration is disabled.
505 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNat) { 530 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNat) {
506 AddInterface(kClientAddr); 531 AddInterface(kClientAddr);
507 // GTURN is not configured here. 532 // GTURN is not configured here.
508 ResetWithStunServerAndNat(kStunAddr); 533 ResetWithStunServerAndNat(kStunAddr);
509 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); 534 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
510 // Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and 535 // Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and
511 // TURN/UDP candidates. 536 // TURN/UDP candidates.
512 CheckDisableAdapterEnumeration(3U, kNatUdpAddr.ipaddr(), 537 CheckDisableAdapterEnumeration(3U, rtc::IPAddress(), kNatUdpAddr.ipaddr(),
513 kTurnUdpExtAddr.ipaddr(), rtc::IPAddress()); 538 kTurnUdpExtAddr.ipaddr(), rtc::IPAddress());
514 } 539 }
515 540
516 // Test that even with multiple interfaces, the result should still be one STUN 541 // Test that even with multiple interfaces, the result should still be one STUN
517 // and one TURN candidate since we bind to any address (i.e. all 0s). 542 // and one TURN candidate since we bind to any address (i.e. all 0s).
518 TEST_F(PortAllocatorTest, 543 TEST_F(PortAllocatorTest,
519 TestDisableAdapterEnumerationBehindNatMultipleInterfaces) { 544 TestDisableAdapterEnumerationBehindNatMultipleInterfaces) {
520 AddInterface(kPrivateAddr); 545 AddInterface(kPrivateAddr);
521 AddInterface(kPrivateAddr2); 546 AddInterface(kPrivateAddr2);
522 ResetWithStunServerAndNat(kStunAddr); 547 ResetWithStunServerAndNat(kStunAddr);
523 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); 548 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
524 // Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and 549 // Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and
525 // TURN/UDP candidates. 550 // TURN/UDP candidates.
526 CheckDisableAdapterEnumeration(3U, kNatUdpAddr.ipaddr(), 551 CheckDisableAdapterEnumeration(3U, rtc::IPAddress(), kNatUdpAddr.ipaddr(),
527 kTurnUdpExtAddr.ipaddr(), rtc::IPAddress()); 552 kTurnUdpExtAddr.ipaddr(), rtc::IPAddress());
528 } 553 }
529 554
530 // Test that we should get STUN, TURN/UDP and TURN/TCP candidates when a 555 // Test that we should get STUN, TURN/UDP and TURN/TCP candidates when a
531 // TURN/TCP server is specified. 556 // TURN/TCP server is specified.
532 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) { 557 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) {
533 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); 558 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP);
534 AddInterface(kClientAddr); 559 AddInterface(kClientAddr);
535 // GTURN is not configured here. 560 // GTURN is not configured here.
536 ResetWithStunServerAndNat(kStunAddr); 561 ResetWithStunServerAndNat(kStunAddr);
537 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr); 562 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr);
538 // Expect to see 4 ports - STUN, TURN/UDP, TURN/TCP and TCP port. STUN, 563 // Expect to see 4 ports - STUN, TURN/UDP, TURN/TCP and TCP port. STUN,
539 // TURN/UDP, and TURN/TCP candidates. 564 // TURN/UDP, and TURN/TCP candidates.
540 CheckDisableAdapterEnumeration(4U, kNatUdpAddr.ipaddr(), 565 CheckDisableAdapterEnumeration(4U, rtc::IPAddress(), kNatUdpAddr.ipaddr(),
541 kTurnUdpExtAddr.ipaddr(), 566 kTurnUdpExtAddr.ipaddr(),
542 kTurnUdpExtAddr.ipaddr()); 567 kTurnUdpExtAddr.ipaddr());
543 } 568 }
544 569
545 // Test that we should only get STUN and TURN candidates when adapter 570 // Test that we should only get STUN and TURN candidates when adapter
546 // enumeration is disabled. Since the endpoint is not behind NAT, the srflx 571 // enumeration is disabled. Since the endpoint is not behind NAT, the srflx
547 // address should be the public client interface. 572 // address should be the public client interface.
548 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNat) { 573 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNat) {
549 AddInterfaceAsDefaultRoute(kClientAddr); 574 AddInterfaceAsDefaultRoute(kClientAddr);
550 ResetWithStunServerNoNat(kStunAddr); 575 ResetWithStunServerNoNat(kStunAddr);
551 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); 576 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
552 // Expect to see 3 ports: STUN, TURN/UDP and TCP ports, but only both STUN and 577 // Expect to see 3 ports: STUN, TURN/UDP and TCP ports, but only both STUN and
553 // TURN candidates. The STUN candidate should have kClientAddr as srflx 578 // TURN candidates. The STUN candidate should have kClientAddr as srflx
554 // address, and TURN candidate with kClientAddr as the related address. 579 // address, and TURN candidate with kClientAddr as the related address.
555 CheckDisableAdapterEnumeration(3U, kClientAddr.ipaddr(), 580 CheckDisableAdapterEnumeration(3U, rtc::IPAddress(), kClientAddr.ipaddr(),
556 kTurnUdpExtAddr.ipaddr(), rtc::IPAddress()); 581 kTurnUdpExtAddr.ipaddr(), rtc::IPAddress());
557 } 582 }
558 583
559 // Test that when adapter enumeration is disabled, for endpoints without 584 // Test that when adapter enumeration is disabled, for endpoints without
560 // STUN/TURN specified, no candidate is generated. 585 // STUN/TURN specified, no candidate is generated.
561 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNatOrServers) { 586 TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNatOrServers) {
562 AddInterfaceAsDefaultRoute(kClientAddr); 587 AddInterfaceAsDefaultRoute(kClientAddr);
563 ResetWithNoServersOrNat(); 588 ResetWithNoServersOrNat();
564 // Expect to see 2 ports: STUN and TCP ports, but no candidate. 589 // Expect to see 2 ports: STUN and TCP ports, but no candidate.
565 CheckDisableAdapterEnumeration(2U, rtc::IPAddress(), rtc::IPAddress(), 590 CheckDisableAdapterEnumeration(2U, rtc::IPAddress(), rtc::IPAddress(),
591 rtc::IPAddress(), rtc::IPAddress());
592 }
593
594 // Test that when adapter enumeration is disabled, with
595 // PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE specified, for endpoints not behind
596 // a NAT, there are a localhost candidate in addition to a STUN candidate.
597 TEST_F(PortAllocatorTest,
598 TestDisableAdapterEnumerationWithoutNatLocalhostCandidateRequested) {
599 AddInterfaceAsDefaultRoute(kClientAddr);
600 ResetWithStunServerNoNat(kStunAddr);
601 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
602 session_->set_flags(cricket::PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE);
603 // Expect to see 2 ports: STUN and TCP ports, localhost candidate and STUN
604 // candidate.
605 CheckDisableAdapterEnumeration(2U, rtc::GetLoopbackIP(AF_INET),
606 kClientAddr.ipaddr(), rtc::IPAddress(),
566 rtc::IPAddress()); 607 rtc::IPAddress());
567 } 608 }
568 609
569 // Disable for asan, see 610 // Disable for asan, see
570 // https://code.google.com/p/webrtc/issues/detail?id=4743 for details. 611 // https://code.google.com/p/webrtc/issues/detail?id=4743 for details.
571 #if !defined(ADDRESS_SANITIZER) 612 #if !defined(ADDRESS_SANITIZER)
572 613
573 // Test that we can get OnCandidatesAllocationDone callback when all the ports 614 // Test that we can get OnCandidatesAllocationDone callback when all the ports
574 // are disabled. 615 // are disabled.
575 TEST_F(PortAllocatorTest, TestDisableAllPorts) { 616 TEST_F(PortAllocatorTest, TestDisableAllPorts) {
(...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 AllocationSequenceForTest alloc_sequence( 1316 AllocationSequenceForTest alloc_sequence(
1276 static_cast<cricket::BasicPortAllocatorSession*>(session_.get()), 1317 static_cast<cricket::BasicPortAllocatorSession*>(session_.get()),
1277 &network1, &config, flag); 1318 &network1, &config, flag);
1278 // This simply tests it will not crash if udp_socket_ in the 1319 // This simply tests it will not crash if udp_socket_ in the
1279 // AllocationSequence is null, which is chosen in the constructor. 1320 // AllocationSequence is null, which is chosen in the constructor.
1280 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); 1321 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN);
1281 relay_server.ports.push_back( 1322 relay_server.ports.push_back(
1282 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false)); 1323 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false));
1283 alloc_sequence.CreateTurnPort(relay_server); 1324 alloc_sequence.CreateTurnPort(relay_server);
1284 } 1325 }
OLDNEW
« no previous file with comments | « webrtc/p2p/client/fakeportallocator.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698