| 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 |
| 11 #include <algorithm> | 11 #include <algorithm> |
| 12 #include <memory> | 12 #include <memory> |
| 13 | 13 |
| 14 #include "webrtc/api/fakemetricsobserver.h" | 14 #include "webrtc/api/fakemetricsobserver.h" |
| 15 #include "webrtc/p2p/base/fakeportallocator.h" | 15 #include "webrtc/p2p/base/fakeportallocator.h" |
| 16 #include "webrtc/p2p/base/packettransport.h" |
| 16 #include "webrtc/p2p/base/p2ptransportchannel.h" | 17 #include "webrtc/p2p/base/p2ptransportchannel.h" |
| 17 #include "webrtc/p2p/base/testrelayserver.h" | 18 #include "webrtc/p2p/base/testrelayserver.h" |
| 18 #include "webrtc/p2p/base/teststunserver.h" | 19 #include "webrtc/p2p/base/teststunserver.h" |
| 19 #include "webrtc/p2p/base/testturnserver.h" | 20 #include "webrtc/p2p/base/testturnserver.h" |
| 20 #include "webrtc/p2p/client/basicportallocator.h" | 21 #include "webrtc/p2p/client/basicportallocator.h" |
| 21 #include "webrtc/base/dscp.h" | 22 #include "webrtc/base/dscp.h" |
| 22 #include "webrtc/base/fakeclock.h" | 23 #include "webrtc/base/fakeclock.h" |
| 23 #include "webrtc/base/fakenetwork.h" | 24 #include "webrtc/base/fakenetwork.h" |
| 24 #include "webrtc/base/firewallsocketserver.h" | 25 #include "webrtc/base/firewallsocketserver.h" |
| 25 #include "webrtc/base/gunit.h" | 26 #include "webrtc/base/gunit.h" |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 ep2_ch1()->receiving() && | 664 ep2_ch1()->receiving() && |
| 664 ep2_ch1()->writable(), | 665 ep2_ch1()->writable(), |
| 665 1000); | 666 1000); |
| 666 | 667 |
| 667 EXPECT_TRUE(ep1_ch1()->selected_connection() && | 668 EXPECT_TRUE(ep1_ch1()->selected_connection() && |
| 668 ep2_ch1()->selected_connection()); | 669 ep2_ch1()->selected_connection()); |
| 669 | 670 |
| 670 TestSendRecv(); | 671 TestSendRecv(); |
| 671 } | 672 } |
| 672 | 673 |
| 673 void OnReadyToSend(TransportChannel* ch) { | 674 void OnReadyToSend(rtc::PacketTransport* pt) { |
| 674 GetEndpoint(ch)->ready_to_send_ = true; | 675 GetEndpoint(static_cast<TransportChannel*>(pt))->ready_to_send_ = true; |
| 675 } | 676 } |
| 676 | 677 |
| 677 // We pass the candidates directly to the other side. | 678 // We pass the candidates directly to the other side. |
| 678 void OnCandidateGathered(TransportChannelImpl* ch, const Candidate& c) { | 679 void OnCandidateGathered(TransportChannelImpl* ch, const Candidate& c) { |
| 679 if (force_relay_ && c.type() != RELAY_PORT_TYPE) | 680 if (force_relay_ && c.type() != RELAY_PORT_TYPE) |
| 680 return; | 681 return; |
| 681 | 682 |
| 682 if (GetEndpoint(ch)->save_candidates_) { | 683 if (GetEndpoint(ch)->save_candidates_) { |
| 683 GetEndpoint(ch)->saved_candidates_.push_back( | 684 GetEndpoint(ch)->saved_candidates_.push_back( |
| 684 std::unique_ptr<CandidatesData>(new CandidatesData(ch, c))); | 685 std::unique_ptr<CandidatesData>(new CandidatesData(ch, c))); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 770 return; | 771 return; |
| 771 } | 772 } |
| 772 for (Candidate& c : data->candidates) { | 773 for (Candidate& c : data->candidates) { |
| 773 LOG(LS_INFO) << "Removed remote candidate " << c.ToString(); | 774 LOG(LS_INFO) << "Removed remote candidate " << c.ToString(); |
| 774 rch->RemoveRemoteCandidate(c); | 775 rch->RemoveRemoteCandidate(c); |
| 775 } | 776 } |
| 776 break; | 777 break; |
| 777 } | 778 } |
| 778 } | 779 } |
| 779 } | 780 } |
| 780 void OnReadPacket(TransportChannel* channel, | 781 void OnReadPacket(rtc::PacketTransport* pt, |
| 781 const char* data, | 782 const char* data, |
| 782 size_t len, | 783 size_t len, |
| 783 const rtc::PacketTime& packet_time, | 784 const rtc::PacketTime& packet_time, |
| 784 int flags) { | 785 int flags) { |
| 785 std::list<std::string>& packets = GetPacketList(channel); | 786 std::list<std::string>& packets = |
| 787 GetPacketList(static_cast<TransportChannel*>(pt)); |
| 786 packets.push_front(std::string(data, len)); | 788 packets.push_front(std::string(data, len)); |
| 787 } | 789 } |
| 788 void OnRoleConflict(TransportChannelImpl* channel) { | 790 void OnRoleConflict(TransportChannelImpl* channel) { |
| 789 GetEndpoint(channel)->OnRoleConflict(true); | 791 GetEndpoint(channel)->OnRoleConflict(true); |
| 790 IceRole new_role = GetEndpoint(channel)->ice_role() == ICEROLE_CONTROLLING | 792 IceRole new_role = GetEndpoint(channel)->ice_role() == ICEROLE_CONTROLLING |
| 791 ? ICEROLE_CONTROLLED | 793 ? ICEROLE_CONTROLLED |
| 792 : ICEROLE_CONTROLLING; | 794 : ICEROLE_CONTROLLING; |
| 793 channel->SetIceRole(new_role); | 795 channel->SetIceRole(new_role); |
| 794 } | 796 } |
| 795 | 797 |
| (...skipping 2106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2902 new StunUInt32Attribute(STUN_ATTR_NOMINATION, nomination)); | 2904 new StunUInt32Attribute(STUN_ATTR_NOMINATION, nomination)); |
| 2903 } | 2905 } |
| 2904 msg.SetTransactionID(rtc::CreateRandomString(kStunTransactionIdLength)); | 2906 msg.SetTransactionID(rtc::CreateRandomString(kStunTransactionIdLength)); |
| 2905 msg.AddMessageIntegrity(conn->local_candidate().password()); | 2907 msg.AddMessageIntegrity(conn->local_candidate().password()); |
| 2906 msg.AddFingerprint(); | 2908 msg.AddFingerprint(); |
| 2907 rtc::ByteBufferWriter buf; | 2909 rtc::ByteBufferWriter buf; |
| 2908 msg.Write(&buf); | 2910 msg.Write(&buf); |
| 2909 conn->OnReadPacket(buf.Data(), buf.Length(), rtc::CreatePacketTime(0)); | 2911 conn->OnReadPacket(buf.Data(), buf.Length(), rtc::CreatePacketTime(0)); |
| 2910 } | 2912 } |
| 2911 | 2913 |
| 2912 void OnReadyToSend(TransportChannel* channel) { | 2914 void OnReadyToSend(rtc::PacketTransport* pt) { |
| 2913 channel_ready_to_send_ = true; | 2915 channel_ready_to_send_ = true; |
| 2914 } | 2916 } |
| 2915 void OnChannelStateChanged(TransportChannelImpl* channel) { | 2917 void OnChannelStateChanged(TransportChannelImpl* channel) { |
| 2916 channel_state_ = channel->GetState(); | 2918 channel_state_ = channel->GetState(); |
| 2917 } | 2919 } |
| 2918 | 2920 |
| 2919 CandidatePairInterface* last_selected_candidate_pair() { | 2921 CandidatePairInterface* last_selected_candidate_pair() { |
| 2920 return last_selected_candidate_pair_; | 2922 return last_selected_candidate_pair_; |
| 2921 } | 2923 } |
| 2922 int last_sent_packet_id() { return last_sent_packet_id_; } | 2924 int last_sent_packet_id() { return last_sent_packet_id_; } |
| (...skipping 1293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4216 | 4218 |
| 4217 // TCP Relay/Relay is the next. | 4219 // TCP Relay/Relay is the next. |
| 4218 VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE, | 4220 VerifyNextPingableConnection(RELAY_PORT_TYPE, RELAY_PORT_TYPE, |
| 4219 TCP_PROTOCOL_NAME); | 4221 TCP_PROTOCOL_NAME); |
| 4220 | 4222 |
| 4221 // Finally, Local/Relay will be pinged. | 4223 // Finally, Local/Relay will be pinged. |
| 4222 VerifyNextPingableConnection(LOCAL_PORT_TYPE, RELAY_PORT_TYPE); | 4224 VerifyNextPingableConnection(LOCAL_PORT_TYPE, RELAY_PORT_TYPE); |
| 4223 } | 4225 } |
| 4224 | 4226 |
| 4225 } // namespace cricket { | 4227 } // namespace cricket { |
| OLD | NEW |