Index: webrtc/pc/channel.cc |
diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc |
index 56335e24d085c74c37050233eb6ca6b73b75adaa..0122df99ffbdd79119a133e91fd3a8feac765a37 100644 |
--- a/webrtc/pc/channel.cc |
+++ b/webrtc/pc/channel.cc |
@@ -25,7 +25,6 @@ |
#include "webrtc/media/base/mediaconstants.h" |
#include "webrtc/media/base/rtputils.h" |
#include "webrtc/p2p/base/packettransportinterface.h" |
-#include "webrtc/p2p/base/transportchannel.h" |
#include "webrtc/pc/channelmanager.h" |
namespace cricket { |
@@ -342,9 +341,9 @@ bool BaseChannel::SetTransport_n(const std::string& transport_name) { |
} |
void BaseChannel::SetTransportChannel_n(bool rtcp, |
- TransportChannel* new_channel) { |
+ DtlsTransportInternal* new_channel) { |
RTC_DCHECK(network_thread_->IsCurrent()); |
- TransportChannel*& old_channel = |
+ DtlsTransportInternal*& old_channel = |
rtcp ? rtcp_transport_channel_ : transport_channel_; |
if (!old_channel && !new_channel) { |
@@ -376,28 +375,28 @@ void BaseChannel::SetTransportChannel_n(bool rtcp, |
} |
} |
-void BaseChannel::ConnectToTransportChannel(TransportChannel* tc) { |
+void BaseChannel::ConnectToTransportChannel(DtlsTransportInternal* tc) { |
RTC_DCHECK(network_thread_->IsCurrent()); |
tc->SignalWritableState.connect(this, &BaseChannel::OnWritableState); |
tc->SignalReadPacket.connect(this, &BaseChannel::OnPacketRead); |
tc->SignalReadyToSend.connect(this, &BaseChannel::OnReadyToSend); |
tc->SignalDtlsState.connect(this, &BaseChannel::OnDtlsState); |
- tc->SignalSelectedCandidatePairChanged.connect( |
- this, &BaseChannel::OnSelectedCandidatePairChanged); |
tc->SignalSentPacket.connect(this, &BaseChannel::SignalSentPacket_n); |
+ tc->ice_transport()->SignalSelectedCandidatePairChanged.connect( |
+ this, &BaseChannel::OnSelectedCandidatePairChanged); |
} |
-void BaseChannel::DisconnectFromTransportChannel(TransportChannel* tc) { |
+void BaseChannel::DisconnectFromTransportChannel(DtlsTransportInternal* tc) { |
RTC_DCHECK(network_thread_->IsCurrent()); |
- OnSelectedCandidatePairChanged(tc, nullptr, -1, false); |
+ OnSelectedCandidatePairChanged(tc->ice_transport(), nullptr, -1, false); |
tc->SignalWritableState.disconnect(this); |
tc->SignalReadPacket.disconnect(this); |
tc->SignalReadyToSend.disconnect(this); |
tc->SignalDtlsState.disconnect(this); |
- tc->SignalSelectedCandidatePairChanged.disconnect(this); |
tc->SignalSentPacket.disconnect(this); |
+ tc->ice_transport()->SignalSelectedCandidatePairChanged.disconnect(this); |
} |
bool BaseChannel::Enable(bool enable) { |
@@ -467,7 +466,7 @@ void BaseChannel::StopConnectionMonitor() { |
bool BaseChannel::GetConnectionStats(ConnectionInfos* infos) { |
RTC_DCHECK(network_thread_->IsCurrent()); |
- return transport_channel_->GetStats(infos); |
+ return transport_channel_->ice_transport()->GetStats(infos); |
} |
bool BaseChannel::IsReadyToReceiveMedia_w() const { |
@@ -510,7 +509,7 @@ int BaseChannel::SetOption_n(SocketType type, |
rtc::Socket::Option opt, |
int value) { |
RTC_DCHECK(network_thread_->IsCurrent()); |
- TransportChannel* channel = nullptr; |
+ DtlsTransportInternal* channel = nullptr; |
switch (type) { |
case ST_RTP: |
channel = transport_channel_; |
@@ -523,7 +522,7 @@ int BaseChannel::SetOption_n(SocketType type, |
std::pair<rtc::Socket::Option, int>(opt, value)); |
break; |
} |
- return channel ? channel->SetOption(opt, value) : -1; |
+ return channel ? channel->ice_transport()->SetOption(opt, value) : -1; |
} |
bool BaseChannel::SetCryptoOptions(const rtc::CryptoOptions& crypto_options) { |
@@ -547,6 +546,8 @@ void BaseChannel::OnPacketRead(rtc::PacketTransportInterface* transport, |
// OnPacketRead gets called from P2PSocket; now pass data to MediaEngine |
RTC_DCHECK(network_thread_->IsCurrent()); |
+ LOG(INFO) << "data: " << (long)data << " len " << len << " from " |
+ << transport; |
Taylor Brandstetter
2017/01/10 19:43:47
Leftover debug message
Zhi Huang
2017/01/12 20:04:12
Done.
|
// When using RTCP multiplexing we might get RTCP packets on the RTP |
// transport. We feed RTP traffic into the demuxer to determine if it is RTCP. |
bool rtcp = PacketIsRtcp(transport, data, len); |
@@ -560,7 +561,7 @@ void BaseChannel::OnReadyToSend(rtc::PacketTransportInterface* transport) { |
SetTransportChannelReadyToSend(transport == rtcp_transport_channel_, true); |
} |
-void BaseChannel::OnDtlsState(TransportChannel* channel, |
+void BaseChannel::OnDtlsState(DtlsTransportInternal* channel, |
DtlsTransportState state) { |
if (!ShouldSetupDtlsSrtp_n()) { |
return; |
@@ -577,12 +578,12 @@ void BaseChannel::OnDtlsState(TransportChannel* channel, |
} |
void BaseChannel::OnSelectedCandidatePairChanged( |
- TransportChannel* channel, |
+ IceTransportInternal* channel, |
CandidatePairInterface* selected_candidate_pair, |
int last_sent_packet_id, |
bool ready_to_send) { |
- RTC_DCHECK(channel == transport_channel_ || |
- channel == rtcp_transport_channel_); |
+ RTC_DCHECK(channel == transport_channel_->ice_transport() || |
+ channel == rtcp_transport_channel_->ice_transport()); |
RTC_DCHECK(network_thread_->IsCurrent()); |
selected_candidate_pair_ = selected_candidate_pair; |
std::string transport_name = channel->transport_name(); |
@@ -651,8 +652,9 @@ bool BaseChannel::SendPacket(bool rtcp, |
// packet before doing anything. (We might get RTCP packets that we don't |
// intend to send.) If we've negotiated RTCP mux, send RTCP over the RTP |
// transport. |
- TransportChannel* channel = (!rtcp || rtcp_mux_filter_.IsActive()) ? |
- transport_channel_ : rtcp_transport_channel_; |
+ DtlsTransportInternal* channel = (!rtcp || rtcp_mux_filter_.IsActive()) |
+ ? transport_channel_ |
+ : rtcp_transport_channel_; |
if (!channel || !channel->writable()) { |
return false; |
} |
@@ -793,6 +795,7 @@ void BaseChannel::HandlePacket(bool rtcp, rtc::CopyOnWriteBuffer* packet, |
int len = static_cast<int>(packet->size()); |
bool res; |
if (!rtcp) { |
+ LOG(INFO) << __FUNCTION__ << " " << (long)data; |
Taylor Brandstetter
2017/01/10 19:43:47
Also here
Zhi Huang
2017/01/12 20:04:12
Done.
|
res = srtp_filter_.UnprotectRtp(data, len, &len); |
if (!res) { |
int seq_num = -1; |
@@ -942,7 +945,8 @@ void BaseChannel::SignalDtlsSrtpSetupFailure_s(bool rtcp) { |
SignalDtlsSrtpSetupFailure(this, rtcp); |
} |
-bool BaseChannel::SetDtlsSrtpCryptoSuites_n(TransportChannel* tc, bool rtcp) { |
+bool BaseChannel::SetDtlsSrtpCryptoSuites_n(DtlsTransportInternal* tc, |
+ bool rtcp) { |
std::vector<int> crypto_suites; |
// We always use the default SRTP crypto suites for RTCP, but we may use |
// different crypto suites for RTP depending on the media type. |
@@ -965,7 +969,7 @@ bool BaseChannel::SetupDtlsSrtp_n(bool rtcp_channel) { |
RTC_DCHECK(network_thread_->IsCurrent()); |
bool ret = false; |
- TransportChannel* channel = |
+ DtlsTransportInternal* channel = |
rtcp_channel ? rtcp_transport_channel_ : transport_channel_; |
RTC_DCHECK(channel->IsDtlsActive()); |