Index: webrtc/p2p/base/dtlstransportchannel.cc |
diff --git a/webrtc/p2p/base/dtlstransportchannel.cc b/webrtc/p2p/base/dtlstransportchannel.cc |
index e73cf688bda12420e9745d034bec53e586eecfa6..7d2f496d42285e08a00ba7b61b529cad2bdde201 100644 |
--- a/webrtc/p2p/base/dtlstransportchannel.cc |
+++ b/webrtc/p2p/base/dtlstransportchannel.cc |
@@ -118,6 +118,8 @@ DtlsTransportChannelWrapper::DtlsTransportChannelWrapper( |
&DtlsTransportChannelWrapper::OnRouteChange); |
channel_->SignalConnectionRemoved.connect(this, |
&DtlsTransportChannelWrapper::OnConnectionRemoved); |
+ channel_->SignalFlakyState.connect(this, |
+ &DtlsTransportChannelWrapper::OnFlakyState); |
} |
DtlsTransportChannelWrapper::~DtlsTransportChannelWrapper() { |
@@ -456,6 +458,18 @@ void DtlsTransportChannelWrapper::OnWritableState(TransportChannel* channel) { |
} |
} |
+void DtlsTransportChannelWrapper::OnFlakyState(TransportChannel* channel) { |
+ ASSERT(rtc::Thread::Current() == worker_thread_); |
+ ASSERT(channel == channel_); |
+ LOG_J(LS_VERBOSE, this) |
+ << "DTLSTransportChannelWrapper: channel flaky state changed to " |
+ << channel_->flaky(); |
+ if (dtls_state_ == STATE_NONE || dtls_state_ == STATE_OPEN) { |
pthatcher1
2015/06/24 23:42:52
Why not just always set it, regardless of state?
honghaiz3
2015/08/05 23:56:56
For both set_readable and set_writable, they only
|
+ // Note: SignalFlakyState fired by set_flaky. |
+ set_flaky(channel_->flaky()); |
+ } |
+} |
+ |
void DtlsTransportChannelWrapper::OnReadPacket( |
TransportChannel* channel, const char* data, size_t size, |
const rtc::PacketTime& packet_time, int flags) { |