| OLD | NEW |
| 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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 // |stun_candidate_addr| carries the expected reflective address, which is | 241 // |stun_candidate_addr| carries the expected reflective address, which is |
| 242 // also the related address for TURN candidate if it is expected. Otherwise, | 242 // also the related address for TURN candidate if it is expected. Otherwise, |
| 243 // it should be ignore. | 243 // it should be ignore. |
| 244 void CheckDisableAdapterEnumeration( | 244 void CheckDisableAdapterEnumeration( |
| 245 uint32 total_ports, | 245 uint32 total_ports, |
| 246 const rtc::IPAddress& stun_candidate_addr, | 246 const rtc::IPAddress& stun_candidate_addr, |
| 247 const rtc::IPAddress& relay_candidate_udp_transport_addr, | 247 const rtc::IPAddress& relay_candidate_udp_transport_addr, |
| 248 const rtc::IPAddress& relay_candidate_tcp_transport_addr) { | 248 const rtc::IPAddress& relay_candidate_tcp_transport_addr) { |
| 249 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 249 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 250 session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION | | 250 session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION | |
| 251 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 252 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | 251 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 253 allocator().set_allow_tcp_listen(false); | 252 allocator().set_allow_tcp_listen(false); |
| 254 session_->StartGettingPorts(); | 253 session_->StartGettingPorts(); |
| 255 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 254 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
| 256 | 255 |
| 257 uint32 total_candidates = 0; | 256 uint32 total_candidates = 0; |
| 258 if (!stun_candidate_addr.IsNil()) { | 257 if (!stun_candidate_addr.IsNil()) { |
| 259 ++total_candidates; | 258 ++total_candidates; |
| 260 EXPECT_PRED5(CheckCandidate, candidates_[0], | 259 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 261 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | 260 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 for (size_t i = 0; i < candidates_.size(); ++i) { | 728 for (size_t i = 0; i < candidates_.size(); ++i) { |
| 730 EXPECT_EQ(std::string(cricket::RELAY_PORT_TYPE), candidates_[i].type()); | 729 EXPECT_EQ(std::string(cricket::RELAY_PORT_TYPE), candidates_[i].type()); |
| 731 EXPECT_EQ( | 730 EXPECT_EQ( |
| 732 candidates_[0].related_address(), | 731 candidates_[0].related_address(), |
| 733 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); | 732 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); |
| 734 } | 733 } |
| 735 } | 734 } |
| 736 | 735 |
| 737 TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) { | 736 TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) { |
| 738 AddInterface(kClientAddr); | 737 AddInterface(kClientAddr); |
| 739 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | 738 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 740 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
| 741 allocator().set_candidate_filter(cricket::CF_HOST); | 739 allocator().set_candidate_filter(cricket::CF_HOST); |
| 742 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 740 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 743 session_->StartGettingPorts(); | 741 session_->StartGettingPorts(); |
| 744 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 742 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
| 745 EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only. | 743 EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only. |
| 746 EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only. | 744 EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only. |
| 747 for (size_t i = 0; i < candidates_.size(); ++i) { | 745 for (size_t i = 0; i < candidates_.size(); ++i) { |
| 748 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); | 746 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); |
| 749 } | 747 } |
| 750 } | 748 } |
| 751 | 749 |
| 752 // Host is behind the NAT. | 750 // Host is behind the NAT. |
| 753 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { | 751 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { |
| 754 AddInterface(kPrivateAddr); | 752 AddInterface(kPrivateAddr); |
| 755 ResetWithStunServerAndNat(kStunAddr); | 753 ResetWithStunServerAndNat(kStunAddr); |
| 756 | 754 |
| 757 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | 755 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 758 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
| 759 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); | 756 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); |
| 760 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 757 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 761 session_->StartGettingPorts(); | 758 session_->StartGettingPorts(); |
| 762 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 759 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
| 763 // Host is behind NAT, no private address will be exposed. Hence only UDP | 760 // Host is behind NAT, no private address will be exposed. Hence only UDP |
| 764 // port with STUN candidate will be sent outside. | 761 // port with STUN candidate will be sent outside. |
| 765 EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate. | 762 EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate. |
| 766 EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state. | 763 EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state. |
| 767 for (size_t i = 0; i < candidates_.size(); ++i) { | 764 for (size_t i = 0; i < candidates_.size(); ++i) { |
| 768 EXPECT_EQ(std::string(cricket::STUN_PORT_TYPE), candidates_[i].type()); | 765 EXPECT_EQ(std::string(cricket::STUN_PORT_TYPE), candidates_[i].type()); |
| 769 EXPECT_EQ( | 766 EXPECT_EQ( |
| 770 candidates_[0].related_address(), | 767 candidates_[0].related_address(), |
| 771 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); | 768 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); |
| 772 } | 769 } |
| 773 } | 770 } |
| 774 | 771 |
| 775 // Host is not behind the NAT. | 772 // Host is not behind the NAT. |
| 776 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { | 773 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { |
| 777 AddInterface(kClientAddr); | 774 AddInterface(kClientAddr); |
| 778 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | 775 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 779 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
| 780 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); | 776 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); |
| 781 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 777 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 782 session_->StartGettingPorts(); | 778 session_->StartGettingPorts(); |
| 783 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 779 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
| 784 // Host has a public address, both UDP and TCP candidates will be exposed. | 780 // Host has a public address, both UDP and TCP candidates will be exposed. |
| 785 EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate. | 781 EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate. |
| 786 EXPECT_EQ(2U, ports_.size()); // UDP and TCP ports will be in ready state. | 782 EXPECT_EQ(2U, ports_.size()); // UDP and TCP ports will be in ready state. |
| 787 for (size_t i = 0; i < candidates_.size(); ++i) { | 783 for (size_t i = 0; i < candidates_.size(); ++i) { |
| 788 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); | 784 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); |
| 789 } | 785 } |
| 790 } | 786 } |
| 791 | 787 |
| 792 // Test that when the PORTALLOCATOR_ENABLE_SHARED_UFRAG is enabled we got same | 788 // Test that we get the same ufrag and pwd for all candidates. |
| 793 // ufrag and pwd for the collected candidates. | |
| 794 TEST_F(PortAllocatorTest, TestEnableSharedUfrag) { | 789 TEST_F(PortAllocatorTest, TestEnableSharedUfrag) { |
| 795 allocator().set_flags(allocator().flags() | | |
| 796 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | |
| 797 AddInterface(kClientAddr); | 790 AddInterface(kClientAddr); |
| 798 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 791 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 799 session_->StartGettingPorts(); | 792 session_->StartGettingPorts(); |
| 800 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); | 793 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); |
| 801 EXPECT_PRED5(CheckCandidate, candidates_[0], | 794 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 802 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 795 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
| 803 EXPECT_PRED5(CheckCandidate, candidates_[1], | 796 EXPECT_PRED5(CheckCandidate, candidates_[1], |
| 804 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); | 797 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); |
| 805 EXPECT_PRED5(CheckCandidate, candidates_[5], | 798 EXPECT_PRED5(CheckCandidate, candidates_[5], |
| 806 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); | 799 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); |
| 807 EXPECT_EQ(4U, ports_.size()); | 800 EXPECT_EQ(4U, ports_.size()); |
| 808 EXPECT_EQ(kIceUfrag0, candidates_[0].username()); | 801 EXPECT_EQ(kIceUfrag0, candidates_[0].username()); |
| 809 EXPECT_EQ(kIceUfrag0, candidates_[1].username()); | 802 EXPECT_EQ(kIceUfrag0, candidates_[1].username()); |
| 810 EXPECT_EQ(kIceUfrag0, candidates_[2].username()); | 803 EXPECT_EQ(kIceUfrag0, candidates_[2].username()); |
| 811 EXPECT_EQ(kIcePwd0, candidates_[0].password()); | 804 EXPECT_EQ(kIcePwd0, candidates_[0].password()); |
| 812 EXPECT_EQ(kIcePwd0, candidates_[1].password()); | 805 EXPECT_EQ(kIcePwd0, candidates_[1].password()); |
| 813 EXPECT_TRUE(candidate_allocation_done_); | 806 EXPECT_TRUE(candidate_allocation_done_); |
| 814 } | 807 } |
| 815 | 808 |
| 816 // Test that when the PORTALLOCATOR_ENABLE_SHARED_UFRAG isn't enabled we got | |
| 817 // different ufrag and pwd for the collected candidates. | |
| 818 TEST_F(PortAllocatorTest, TestDisableSharedUfrag) { | |
| 819 allocator().set_flags(allocator().flags() & | |
| 820 ~cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | |
| 821 AddInterface(kClientAddr); | |
| 822 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | |
| 823 session_->StartGettingPorts(); | |
| 824 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); | |
| 825 EXPECT_PRED5(CheckCandidate, candidates_[0], | |
| 826 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | |
| 827 EXPECT_PRED5(CheckCandidate, candidates_[1], | |
| 828 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); | |
| 829 EXPECT_EQ(4U, ports_.size()); | |
| 830 // Port should generate random ufrag and pwd. | |
| 831 EXPECT_NE(kIceUfrag0, candidates_[0].username()); | |
| 832 EXPECT_NE(kIceUfrag0, candidates_[1].username()); | |
| 833 EXPECT_NE(candidates_[0].username(), candidates_[1].username()); | |
| 834 EXPECT_NE(kIcePwd0, candidates_[0].password()); | |
| 835 EXPECT_NE(kIcePwd0, candidates_[1].password()); | |
| 836 EXPECT_NE(candidates_[0].password(), candidates_[1].password()); | |
| 837 EXPECT_TRUE(candidate_allocation_done_); | |
| 838 } | |
| 839 | |
| 840 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port | 809 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port |
| 841 // is allocated for udp and stun. Also verify there is only one candidate | 810 // is allocated for udp and stun. Also verify there is only one candidate |
| 842 // (local) if stun candidate is same as local candidate, which will be the case | 811 // (local) if stun candidate is same as local candidate, which will be the case |
| 843 // in a public network like the below test. | 812 // in a public network like the below test. |
| 844 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { | 813 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { |
| 845 AddInterface(kClientAddr); | 814 AddInterface(kClientAddr); |
| 846 allocator_->set_flags(allocator().flags() | | 815 allocator_->set_flags(allocator().flags() | |
| 847 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 848 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | 816 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 849 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 817 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 850 session_->StartGettingPorts(); | 818 session_->StartGettingPorts(); |
| 851 ASSERT_EQ_WAIT(6U, candidates_.size(), kDefaultAllocationTimeout); | 819 ASSERT_EQ_WAIT(6U, candidates_.size(), kDefaultAllocationTimeout); |
| 852 EXPECT_EQ(3U, ports_.size()); | 820 EXPECT_EQ(3U, ports_.size()); |
| 853 EXPECT_PRED5(CheckCandidate, candidates_[0], | 821 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 854 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 822 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
| 855 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 823 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
| 856 } | 824 } |
| 857 | 825 |
| 858 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port | 826 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port |
| 859 // is allocated for udp and stun. In this test we should expect both stun and | 827 // is allocated for udp and stun. In this test we should expect both stun and |
| 860 // local candidates as client behind a nat. | 828 // local candidates as client behind a nat. |
| 861 TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { | 829 TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { |
| 862 AddInterface(kClientAddr); | 830 AddInterface(kClientAddr); |
| 863 ResetWithStunServerAndNat(kStunAddr); | 831 ResetWithStunServerAndNat(kStunAddr); |
| 864 | 832 |
| 865 allocator_->set_flags(allocator().flags() | | 833 allocator_->set_flags(allocator().flags() | |
| 866 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 867 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | 834 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 868 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 835 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 869 session_->StartGettingPorts(); | 836 session_->StartGettingPorts(); |
| 870 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 837 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
| 871 ASSERT_EQ(2U, ports_.size()); | 838 ASSERT_EQ(2U, ports_.size()); |
| 872 EXPECT_PRED5(CheckCandidate, candidates_[0], | 839 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 873 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 840 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
| 874 EXPECT_PRED5(CheckCandidate, candidates_[1], | 841 EXPECT_PRED5(CheckCandidate, candidates_[1], |
| 875 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | 842 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
| 876 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); | 843 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
| 877 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 844 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
| 878 EXPECT_EQ(3U, candidates_.size()); | 845 EXPECT_EQ(3U, candidates_.size()); |
| 879 } | 846 } |
| 880 | 847 |
| 881 // Test TURN port in shared socket mode with UDP and TCP TURN server addresses. | 848 // Test TURN port in shared socket mode with UDP and TCP TURN server addresses. |
| 882 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { | 849 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { |
| 883 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); | 850 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
| 884 AddInterface(kClientAddr); | 851 AddInterface(kClientAddr); |
| 885 allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); | 852 allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); |
| 886 | 853 |
| 887 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr); | 854 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr); |
| 888 | 855 |
| 889 allocator_->set_step_delay(cricket::kMinimumStepDelay); | 856 allocator_->set_step_delay(cricket::kMinimumStepDelay); |
| 890 allocator_->set_flags(allocator().flags() | | 857 allocator_->set_flags(allocator().flags() | |
| 891 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 892 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | 858 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | |
| 893 cricket::PORTALLOCATOR_DISABLE_TCP); | 859 cricket::PORTALLOCATOR_DISABLE_TCP); |
| 894 | 860 |
| 895 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 861 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 896 session_->StartGettingPorts(); | 862 session_->StartGettingPorts(); |
| 897 | 863 |
| 898 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 864 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
| 899 ASSERT_EQ(3U, ports_.size()); | 865 ASSERT_EQ(3U, ports_.size()); |
| 900 EXPECT_PRED5(CheckCandidate, candidates_[0], | 866 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 901 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 867 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 919 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); | 885 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); |
| 920 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword); | 886 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword); |
| 921 relay_server.credentials = credentials; | 887 relay_server.credentials = credentials; |
| 922 relay_server.ports.push_back(cricket::ProtocolAddress( | 888 relay_server.ports.push_back(cricket::ProtocolAddress( |
| 923 rtc::SocketAddress("localhost", 3478), | 889 rtc::SocketAddress("localhost", 3478), |
| 924 cricket::PROTO_UDP, false)); | 890 cricket::PROTO_UDP, false)); |
| 925 allocator_->AddRelay(relay_server); | 891 allocator_->AddRelay(relay_server); |
| 926 | 892 |
| 927 allocator_->set_step_delay(cricket::kMinimumStepDelay); | 893 allocator_->set_step_delay(cricket::kMinimumStepDelay); |
| 928 allocator_->set_flags(allocator().flags() | | 894 allocator_->set_flags(allocator().flags() | |
| 929 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 930 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | 895 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | |
| 931 cricket::PORTALLOCATOR_DISABLE_TCP); | 896 cricket::PORTALLOCATOR_DISABLE_TCP); |
| 932 | 897 |
| 933 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 898 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 934 session_->StartGettingPorts(); | 899 session_->StartGettingPorts(); |
| 935 | 900 |
| 936 EXPECT_EQ_WAIT(2U, ports_.size(), kDefaultAllocationTimeout); | 901 EXPECT_EQ_WAIT(2U, ports_.size(), kDefaultAllocationTimeout); |
| 937 } | 902 } |
| 938 | 903 |
| 939 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port | 904 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port |
| 940 // is allocated for udp/stun/turn. In this test we should expect all local, | 905 // is allocated for udp/stun/turn. In this test we should expect all local, |
| 941 // stun and turn candidates. | 906 // stun and turn candidates. |
| 942 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { | 907 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
| 943 AddInterface(kClientAddr); | 908 AddInterface(kClientAddr); |
| 944 ResetWithStunServerAndNat(kStunAddr); | 909 ResetWithStunServerAndNat(kStunAddr); |
| 945 | 910 |
| 946 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | 911 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
| 947 | 912 |
| 948 allocator_->set_flags(allocator().flags() | | 913 allocator_->set_flags(allocator().flags() | |
| 949 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 950 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | 914 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | |
| 951 cricket::PORTALLOCATOR_DISABLE_TCP); | 915 cricket::PORTALLOCATOR_DISABLE_TCP); |
| 952 | 916 |
| 953 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 917 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 954 session_->StartGettingPorts(); | 918 session_->StartGettingPorts(); |
| 955 | 919 |
| 956 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 920 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
| 957 ASSERT_EQ(2U, ports_.size()); | 921 ASSERT_EQ(2U, ports_.size()); |
| 958 EXPECT_PRED5(CheckCandidate, candidates_[0], | 922 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 959 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 923 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 978 // Use an empty SocketAddress to add a NAT without STUN server. | 942 // Use an empty SocketAddress to add a NAT without STUN server. |
| 979 ResetWithStunServerAndNat(SocketAddress()); | 943 ResetWithStunServerAndNat(SocketAddress()); |
| 980 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | 944 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
| 981 | 945 |
| 982 // Must set the step delay to 0 to make sure the relay allocation phase is | 946 // Must set the step delay to 0 to make sure the relay allocation phase is |
| 983 // started before the STUN candidates are obtained, so that the STUN binding | 947 // started before the STUN candidates are obtained, so that the STUN binding |
| 984 // response is processed when both StunPort and TurnPort exist to reproduce | 948 // response is processed when both StunPort and TurnPort exist to reproduce |
| 985 // webrtc issue 3537. | 949 // webrtc issue 3537. |
| 986 allocator_->set_step_delay(0); | 950 allocator_->set_step_delay(0); |
| 987 allocator_->set_flags(allocator().flags() | | 951 allocator_->set_flags(allocator().flags() | |
| 988 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 989 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | 952 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | |
| 990 cricket::PORTALLOCATOR_DISABLE_TCP); | 953 cricket::PORTALLOCATOR_DISABLE_TCP); |
| 991 | 954 |
| 992 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 955 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 993 session_->StartGettingPorts(); | 956 session_->StartGettingPorts(); |
| 994 | 957 |
| 995 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 958 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
| 996 EXPECT_PRED5(CheckCandidate, candidates_[0], | 959 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 997 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 960 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
| 998 EXPECT_PRED5(CheckCandidate, candidates_[1], | 961 EXPECT_PRED5(CheckCandidate, candidates_[1], |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1013 // Test that when only a TCP TURN server is available, we do NOT use it as | 976 // Test that when only a TCP TURN server is available, we do NOT use it as |
| 1014 // a UDP STUN server, as this could leak our IP address. Thus we should only | 977 // a UDP STUN server, as this could leak our IP address. Thus we should only |
| 1015 // expect two ports, a UDPPort and TurnPort. | 978 // expect two ports, a UDPPort and TurnPort. |
| 1016 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { | 979 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { |
| 1017 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); | 980 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
| 1018 AddInterface(kClientAddr); | 981 AddInterface(kClientAddr); |
| 1019 ResetWithStunServerAndNat(rtc::SocketAddress()); | 982 ResetWithStunServerAndNat(rtc::SocketAddress()); |
| 1020 AddTurnServers(rtc::SocketAddress(), kTurnTcpIntAddr); | 983 AddTurnServers(rtc::SocketAddress(), kTurnTcpIntAddr); |
| 1021 | 984 |
| 1022 allocator_->set_flags(allocator().flags() | | 985 allocator_->set_flags(allocator().flags() | |
| 1023 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 1024 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | 986 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | |
| 1025 cricket::PORTALLOCATOR_DISABLE_TCP); | 987 cricket::PORTALLOCATOR_DISABLE_TCP); |
| 1026 | 988 |
| 1027 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 989 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 1028 session_->StartGettingPorts(); | 990 session_->StartGettingPorts(); |
| 1029 | 991 |
| 1030 ASSERT_EQ_WAIT(2U, candidates_.size(), kDefaultAllocationTimeout); | 992 ASSERT_EQ_WAIT(2U, candidates_.size(), kDefaultAllocationTimeout); |
| 1031 ASSERT_EQ(2U, ports_.size()); | 993 ASSERT_EQ(2U, ports_.size()); |
| 1032 EXPECT_PRED5(CheckCandidate, candidates_[0], | 994 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 1033 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", | 995 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1046 // 'relay' candidates. | 1008 // 'relay' candidates. |
| 1047 // TODO(deadbeef): Remove this test when support for non-shared socket mode | 1009 // TODO(deadbeef): Remove this test when support for non-shared socket mode |
| 1048 // is removed. | 1010 // is removed. |
| 1049 TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { | 1011 TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { |
| 1050 AddInterface(kClientAddr); | 1012 AddInterface(kClientAddr); |
| 1051 // Use an empty SocketAddress to add a NAT without STUN server. | 1013 // Use an empty SocketAddress to add a NAT without STUN server. |
| 1052 ResetWithStunServerAndNat(SocketAddress()); | 1014 ResetWithStunServerAndNat(SocketAddress()); |
| 1053 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | 1015 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
| 1054 | 1016 |
| 1055 allocator_->set_flags(allocator().flags() | | 1017 allocator_->set_flags(allocator().flags() | |
| 1056 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 1057 cricket::PORTALLOCATOR_DISABLE_TCP); | 1018 cricket::PORTALLOCATOR_DISABLE_TCP); |
| 1058 | 1019 |
| 1059 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 1020 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 1060 session_->StartGettingPorts(); | 1021 session_->StartGettingPorts(); |
| 1061 | 1022 |
| 1062 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 1023 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
| 1063 ASSERT_EQ(3U, ports_.size()); | 1024 ASSERT_EQ(3U, ports_.size()); |
| 1064 EXPECT_PRED5(CheckCandidate, candidates_[0], | 1025 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 1065 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", | 1026 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
| 1066 kClientAddr); | 1027 kClientAddr); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1085 // server is used as a STUN server and we get a 'stun' candidate. | 1046 // server is used as a STUN server and we get a 'stun' candidate. |
| 1086 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { | 1047 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { |
| 1087 AddInterface(kClientAddr); | 1048 AddInterface(kClientAddr); |
| 1088 // Configure with STUN server but destroy it, so we can ensure that it's | 1049 // Configure with STUN server but destroy it, so we can ensure that it's |
| 1089 // the TURN server actually being used as a STUN server. | 1050 // the TURN server actually being used as a STUN server. |
| 1090 ResetWithStunServerAndNat(kStunAddr); | 1051 ResetWithStunServerAndNat(kStunAddr); |
| 1091 stun_server_.reset(); | 1052 stun_server_.reset(); |
| 1092 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | 1053 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
| 1093 | 1054 |
| 1094 allocator_->set_flags(allocator().flags() | | 1055 allocator_->set_flags(allocator().flags() | |
| 1095 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 1096 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | 1056 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | |
| 1097 cricket::PORTALLOCATOR_DISABLE_TCP); | 1057 cricket::PORTALLOCATOR_DISABLE_TCP); |
| 1098 | 1058 |
| 1099 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 1059 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 1100 session_->StartGettingPorts(); | 1060 session_->StartGettingPorts(); |
| 1101 | 1061 |
| 1102 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 1062 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
| 1103 EXPECT_PRED5(CheckCandidate, candidates_[0], | 1063 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 1104 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", | 1064 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
| 1105 kClientAddr); | 1065 kClientAddr); |
| 1106 EXPECT_PRED5(CheckCandidate, candidates_[1], | 1066 EXPECT_PRED5(CheckCandidate, candidates_[1], |
| 1107 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | 1067 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
| 1108 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); | 1068 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
| 1109 EXPECT_PRED5(CheckCandidate, candidates_[2], | 1069 EXPECT_PRED5(CheckCandidate, candidates_[2], |
| 1110 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", | 1070 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
| 1111 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); | 1071 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
| 1112 EXPECT_EQ(candidates_[2].related_address(), candidates_[1].address()); | 1072 EXPECT_EQ(candidates_[2].related_address(), candidates_[1].address()); |
| 1113 | 1073 |
| 1114 // Don't bother waiting for STUN timeout, since we already verified | 1074 // Don't bother waiting for STUN timeout, since we already verified |
| 1115 // that we got a STUN candidate from the TURN server. | 1075 // that we got a STUN candidate from the TURN server. |
| 1116 } | 1076 } |
| 1117 | 1077 |
| 1118 // This test verifies when PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is enabled | 1078 // This test verifies when PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is enabled |
| 1119 // and fail to generate STUN candidate, local UDP candidate is generated | 1079 // and fail to generate STUN candidate, local UDP candidate is generated |
| 1120 // properly. | 1080 // properly. |
| 1121 TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { | 1081 TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { |
| 1122 allocator().set_flags(allocator().flags() | | 1082 allocator().set_flags(allocator().flags() | |
| 1123 cricket::PORTALLOCATOR_DISABLE_RELAY | | 1083 cricket::PORTALLOCATOR_DISABLE_RELAY | |
| 1124 cricket::PORTALLOCATOR_DISABLE_TCP | | 1084 cricket::PORTALLOCATOR_DISABLE_TCP | |
| 1125 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 1126 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | 1085 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 1127 fss_->AddRule(false, rtc::FP_UDP, rtc::FD_ANY, kClientAddr); | 1086 fss_->AddRule(false, rtc::FP_UDP, rtc::FD_ANY, kClientAddr); |
| 1128 AddInterface(kClientAddr); | 1087 AddInterface(kClientAddr); |
| 1129 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 1088 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 1130 session_->StartGettingPorts(); | 1089 session_->StartGettingPorts(); |
| 1131 ASSERT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); | 1090 ASSERT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); |
| 1132 EXPECT_EQ(1U, candidates_.size()); | 1091 EXPECT_EQ(1U, candidates_.size()); |
| 1133 EXPECT_PRED5(CheckCandidate, candidates_[0], | 1092 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| 1134 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 1093 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
| 1135 // STUN timeout is 9sec. We need to wait to get candidate done signal. | 1094 // STUN timeout is 9sec. We need to wait to get candidate done signal. |
| 1136 EXPECT_TRUE_WAIT(candidate_allocation_done_, 10000); | 1095 EXPECT_TRUE_WAIT(candidate_allocation_done_, 10000); |
| 1137 EXPECT_EQ(1U, candidates_.size()); | 1096 EXPECT_EQ(1U, candidates_.size()); |
| 1138 } | 1097 } |
| 1139 | 1098 |
| 1140 // Test that when the NetworkManager doesn't have permission to enumerate | 1099 // Test that when the NetworkManager doesn't have permission to enumerate |
| 1141 // adapters, the PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION is specified | 1100 // adapters, the PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION is specified |
| 1142 // automatically. | 1101 // automatically. |
| 1143 TEST_F(PortAllocatorTest, TestNetworkPermissionBlocked) { | 1102 TEST_F(PortAllocatorTest, TestNetworkPermissionBlocked) { |
| 1144 AddInterface(kClientAddr); | 1103 AddInterface(kClientAddr); |
| 1145 network_manager_.set_enumeration_permission( | 1104 network_manager_.set_enumeration_permission( |
| 1146 rtc::NetworkManager::kEnumerationDisallowed); | 1105 rtc::NetworkManager::kEnumerationDisallowed); |
| 1147 allocator().set_flags(allocator().flags() | | 1106 allocator().set_flags(allocator().flags() | |
| 1148 cricket::PORTALLOCATOR_DISABLE_RELAY | | 1107 cricket::PORTALLOCATOR_DISABLE_RELAY | |
| 1149 cricket::PORTALLOCATOR_DISABLE_TCP | | 1108 cricket::PORTALLOCATOR_DISABLE_TCP | |
| 1150 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 1151 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | 1109 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 1152 EXPECT_EQ( | 1110 EXPECT_EQ( |
| 1153 allocator_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION, | 1111 allocator_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION, |
| 1154 0U); | 1112 0U); |
| 1155 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 1113 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 1156 EXPECT_EQ( | 1114 EXPECT_EQ( |
| 1157 session_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION, | 1115 session_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION, |
| 1158 0U); | 1116 0U); |
| 1159 session_->StartGettingPorts(); | 1117 session_->StartGettingPorts(); |
| 1160 EXPECT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); | 1118 EXPECT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); |
| 1161 EXPECT_EQ(0U, candidates_.size()); | 1119 EXPECT_EQ(0U, candidates_.size()); |
| 1162 EXPECT_TRUE((session_->flags() & | 1120 EXPECT_TRUE((session_->flags() & |
| 1163 cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) != 0); | 1121 cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) != 0); |
| 1164 } | 1122 } |
| 1165 | 1123 |
| 1166 // This test verifies allocator can use IPv6 addresses along with IPv4. | 1124 // This test verifies allocator can use IPv6 addresses along with IPv4. |
| 1167 TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { | 1125 TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { |
| 1168 allocator().set_flags(allocator().flags() | | 1126 allocator().set_flags(allocator().flags() | |
| 1169 cricket::PORTALLOCATOR_DISABLE_RELAY | | 1127 cricket::PORTALLOCATOR_DISABLE_RELAY | |
| 1170 cricket::PORTALLOCATOR_ENABLE_IPV6 | | 1128 cricket::PORTALLOCATOR_ENABLE_IPV6 | |
| 1171 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
| 1172 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | 1129 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
| 1173 AddInterface(kClientIPv6Addr); | 1130 AddInterface(kClientIPv6Addr); |
| 1174 AddInterface(kClientAddr); | 1131 AddInterface(kClientAddr); |
| 1175 allocator_->set_step_delay(cricket::kMinimumStepDelay); | 1132 allocator_->set_step_delay(cricket::kMinimumStepDelay); |
| 1176 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 1133 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
| 1177 session_->StartGettingPorts(); | 1134 session_->StartGettingPorts(); |
| 1178 ASSERT_EQ_WAIT(4U, ports_.size(), kDefaultAllocationTimeout); | 1135 ASSERT_EQ_WAIT(4U, ports_.size(), kDefaultAllocationTimeout); |
| 1179 EXPECT_EQ(4U, candidates_.size()); | 1136 EXPECT_EQ(4U, candidates_.size()); |
| 1180 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 1137 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
| 1181 EXPECT_PRED5(CheckCandidate, candidates_[0], | 1138 EXPECT_PRED5(CheckCandidate, candidates_[0], |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1220 alloc.SetStunHosts(stun_servers); | 1177 alloc.SetStunHosts(stun_servers); |
| 1221 EXPECT_EQ(2U, alloc.relay_hosts().size()); | 1178 EXPECT_EQ(2U, alloc.relay_hosts().size()); |
| 1222 EXPECT_EQ(2U, alloc.stun_hosts().size()); | 1179 EXPECT_EQ(2U, alloc.stun_hosts().size()); |
| 1223 } | 1180 } |
| 1224 | 1181 |
| 1225 // Test that the HttpPortAllocator uses correct URL to create sessions. | 1182 // Test that the HttpPortAllocator uses correct URL to create sessions. |
| 1226 TEST(HttpPortAllocatorTest, TestSessionRequestUrl) { | 1183 TEST(HttpPortAllocatorTest, TestSessionRequestUrl) { |
| 1227 rtc::FakeNetworkManager network_manager; | 1184 rtc::FakeNetworkManager network_manager; |
| 1228 cricket::HttpPortAllocator alloc(&network_manager, "unit test agent"); | 1185 cricket::HttpPortAllocator alloc(&network_manager, "unit test agent"); |
| 1229 | 1186 |
| 1230 // Disable PORTALLOCATOR_ENABLE_SHARED_UFRAG. | |
| 1231 alloc.set_flags(alloc.flags() & ~cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | |
| 1232 rtc::scoped_ptr<cricket::HttpPortAllocatorSessionBase> session( | 1187 rtc::scoped_ptr<cricket::HttpPortAllocatorSessionBase> session( |
| 1233 static_cast<cricket::HttpPortAllocatorSession*>( | 1188 static_cast<cricket::HttpPortAllocatorSession*>( |
| 1234 alloc.CreateSessionInternal( | 1189 alloc.CreateSessionInternal( |
| 1235 "test content", 0, kIceUfrag0, kIcePwd0))); | 1190 "test content", 0, kIceUfrag0, kIcePwd0))); |
| 1236 std::string url = session->GetSessionRequestUrl(); | 1191 std::string url = session->GetSessionRequestUrl(); |
| 1237 LOG(LS_INFO) << "url: " << url; | 1192 LOG(LS_INFO) << "url: " << url; |
| 1238 EXPECT_EQ(std::string(cricket::HttpPortAllocator::kCreateSessionURL), url); | |
| 1239 | |
| 1240 // Enable PORTALLOCATOR_ENABLE_SHARED_UFRAG. | |
| 1241 alloc.set_flags(alloc.flags() | cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | |
| 1242 session.reset(static_cast<cricket::HttpPortAllocatorSession*>( | |
| 1243 alloc.CreateSessionInternal("test content", 0, kIceUfrag0, kIcePwd0))); | |
| 1244 url = session->GetSessionRequestUrl(); | |
| 1245 LOG(LS_INFO) << "url: " << url; | |
| 1246 std::vector<std::string> parts; | 1193 std::vector<std::string> parts; |
| 1247 rtc::split(url, '?', &parts); | 1194 rtc::split(url, '?', &parts); |
| 1248 ASSERT_EQ(2U, parts.size()); | 1195 ASSERT_EQ(2U, parts.size()); |
| 1249 | 1196 |
| 1250 std::vector<std::string> args_parts; | 1197 std::vector<std::string> args_parts; |
| 1251 rtc::split(parts[1], '&', &args_parts); | 1198 rtc::split(parts[1], '&', &args_parts); |
| 1252 | 1199 |
| 1253 std::map<std::string, std::string> args; | 1200 std::map<std::string, std::string> args; |
| 1254 for (std::vector<std::string>::iterator it = args_parts.begin(); | 1201 for (std::vector<std::string>::iterator it = args_parts.begin(); |
| 1255 it != args_parts.end(); ++it) { | 1202 it != args_parts.end(); ++it) { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1301 AllocationSequenceForTest alloc_sequence( | 1248 AllocationSequenceForTest alloc_sequence( |
| 1302 static_cast<cricket::BasicPortAllocatorSession*>(session_.get()), | 1249 static_cast<cricket::BasicPortAllocatorSession*>(session_.get()), |
| 1303 &network1, &config, flag); | 1250 &network1, &config, flag); |
| 1304 // This simply tests it will not crash if udp_socket_ in the | 1251 // This simply tests it will not crash if udp_socket_ in the |
| 1305 // AllocationSequence is null, which is chosen in the constructor. | 1252 // AllocationSequence is null, which is chosen in the constructor. |
| 1306 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); | 1253 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); |
| 1307 relay_server.ports.push_back( | 1254 relay_server.ports.push_back( |
| 1308 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false)); | 1255 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false)); |
| 1309 alloc_sequence.CreateTurnPort(relay_server); | 1256 alloc_sequence.CreateTurnPort(relay_server); |
| 1310 } | 1257 } |
| OLD | NEW |