diff options
Diffstat (limited to 'pc/dtls_transport.cc')
-rw-r--r-- | pc/dtls_transport.cc | 42 |
1 files changed, 11 insertions, 31 deletions
diff --git a/pc/dtls_transport.cc b/pc/dtls_transport.cc index 0b6d367184..074f44e22b 100644 --- a/pc/dtls_transport.cc +++ b/pc/dtls_transport.cc @@ -13,6 +13,7 @@ #include <utility> #include "absl/types/optional.h" +#include "api/dtls_transport_interface.h" #include "api/sequence_checker.h" #include "pc/ice_transport.h" #include "rtc_base/checks.h" @@ -22,38 +23,18 @@ namespace webrtc { -namespace { - -DtlsTransportState TranslateState(cricket::DtlsTransportState internal_state) { - switch (internal_state) { - case cricket::DTLS_TRANSPORT_NEW: - return DtlsTransportState::kNew; - case cricket::DTLS_TRANSPORT_CONNECTING: - return DtlsTransportState::kConnecting; - case cricket::DTLS_TRANSPORT_CONNECTED: - return DtlsTransportState::kConnected; - case cricket::DTLS_TRANSPORT_CLOSED: - return DtlsTransportState::kClosed; - case cricket::DTLS_TRANSPORT_FAILED: - return DtlsTransportState::kFailed; - } - RTC_CHECK_NOTREACHED(); -} - -} // namespace - // Implementation of DtlsTransportInterface DtlsTransport::DtlsTransport( std::unique_ptr<cricket::DtlsTransportInternal> internal) : owner_thread_(rtc::Thread::Current()), info_(DtlsTransportState::kNew), internal_dtls_transport_(std::move(internal)), - ice_transport_(new rtc::RefCountedObject<IceTransportWithPointer>( + ice_transport_(rtc::make_ref_counted<IceTransportWithPointer>( internal_dtls_transport_->ice_transport())) { RTC_DCHECK(internal_dtls_transport_.get()); - internal_dtls_transport_->SubscribeDtlsState( + internal_dtls_transport_->SubscribeDtlsTransportState( [this](cricket::DtlsTransportInternal* transport, - cricket::DtlsTransportState state) { + DtlsTransportState state) { OnInternalDtlsState(transport, state); }); UpdateInformation(); @@ -90,7 +71,7 @@ void DtlsTransport::Clear() { RTC_DCHECK_RUN_ON(owner_thread_); RTC_DCHECK(internal()); bool must_send_event = - (internal()->dtls_state() != cricket::DTLS_TRANSPORT_CLOSED); + (internal()->dtls_state() != DtlsTransportState::kClosed); // The destructor of cricket::DtlsTransportInternal calls back // into DtlsTransport, so we can't hold the lock while releasing. std::unique_ptr<cricket::DtlsTransportInternal> transport_to_release; @@ -107,7 +88,7 @@ void DtlsTransport::Clear() { void DtlsTransport::OnInternalDtlsState( cricket::DtlsTransportInternal* transport, - cricket::DtlsTransportState state) { + DtlsTransportState state) { RTC_DCHECK_RUN_ON(owner_thread_); RTC_DCHECK(transport == internal()); RTC_DCHECK(state == internal()->dtls_state()); @@ -122,7 +103,7 @@ void DtlsTransport::UpdateInformation() { MutexLock lock(&lock_); if (internal_dtls_transport_) { if (internal_dtls_transport_->dtls_state() == - cricket::DTLS_TRANSPORT_CONNECTED) { + DtlsTransportState::kConnected) { bool success = true; int ssl_cipher_suite; int tls_version; @@ -132,20 +113,19 @@ void DtlsTransport::UpdateInformation() { success &= internal_dtls_transport_->GetSrtpCryptoSuite(&srtp_cipher); if (success) { info_ = DtlsTransportInformation( - TranslateState(internal_dtls_transport_->dtls_state()), tls_version, + internal_dtls_transport_->dtls_state(), tls_version, ssl_cipher_suite, srtp_cipher, internal_dtls_transport_->GetRemoteSSLCertChain()); } else { RTC_LOG(LS_ERROR) << "DtlsTransport in connected state has incomplete " "TLS information"; info_ = DtlsTransportInformation( - TranslateState(internal_dtls_transport_->dtls_state()), - absl::nullopt, absl::nullopt, absl::nullopt, + internal_dtls_transport_->dtls_state(), absl::nullopt, + absl::nullopt, absl::nullopt, internal_dtls_transport_->GetRemoteSSLCertChain()); } } else { - info_ = DtlsTransportInformation( - TranslateState(internal_dtls_transport_->dtls_state())); + info_ = DtlsTransportInformation(internal_dtls_transport_->dtls_state()); } } else { info_ = DtlsTransportInformation(DtlsTransportState::kClosed); |