From c32f00ea9ddf3267257fe6b45d4d79c6f6bcb829 Mon Sep 17 00:00:00 2001 From: Lahiru Ginnaliya Gamathige Date: Wed, 17 Feb 2021 00:43:21 -0800 Subject: [PATCH] Remove usage of sigslot and replace with a function pointer. - Deleted unused sigslot. Bug: webrtc:11943 Change-Id: I7863dd04e3e63fcba0eabd0dd752ab339614814e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207840 Reviewed-by: Mirko Bonadei Reviewed-by: Harald Alvestrand Commit-Queue: Lahiru Ginnaliya Gamathige Cr-Commit-Position: refs/heads/master@{#33327} --- pc/dtls_srtp_transport.cc | 10 +++++++--- pc/dtls_srtp_transport.h | 4 ++-- pc/jsep_transport_controller.cc | 8 ++++++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/pc/dtls_srtp_transport.cc b/pc/dtls_srtp_transport.cc index 69b0eebfc1..f272ab79cd 100644 --- a/pc/dtls_srtp_transport.cc +++ b/pc/dtls_srtp_transport.cc @@ -166,7 +166,6 @@ void DtlsSrtpTransport::SetupRtpDtlsSrtp() { static_cast(send_key.size()), send_extension_ids, selected_crypto_suite, &recv_key[0], static_cast(recv_key.size()), recv_extension_ids)) { - SignalDtlsSrtpSetupFailure(this, /*rtcp=*/false); RTC_LOG(LS_WARNING) << "DTLS-SRTP key installation for RTP failed"; } } @@ -198,7 +197,6 @@ void DtlsSrtpTransport::SetupRtcpDtlsSrtp() { selected_crypto_suite, &rtcp_recv_key[0], static_cast(rtcp_recv_key.size()), recv_extension_ids)) { - SignalDtlsSrtpSetupFailure(this, /*rtcp=*/true); RTC_LOG(LS_WARNING) << "DTLS-SRTP key installation for RTCP failed"; } } @@ -306,7 +304,9 @@ void DtlsSrtpTransport::OnDtlsState(cricket::DtlsTransportInternal* transport, RTC_DCHECK(transport == rtp_dtls_transport_ || transport == rtcp_dtls_transport_); - SignalDtlsStateChange(); + if (on_dtls_state_change_) { + on_dtls_state_change_(); + } if (state != cricket::DTLS_TRANSPORT_CONNECTED) { ResetParams(); @@ -321,4 +321,8 @@ void DtlsSrtpTransport::OnWritableState( MaybeSetupDtlsSrtp(); } +void DtlsSrtpTransport::SetOnDtlsStateChange( + std::function callback) { + on_dtls_state_change_ = std::move(callback); +} } // namespace webrtc diff --git a/pc/dtls_srtp_transport.h b/pc/dtls_srtp_transport.h index 7c4c5906c9..bc82fd5a9a 100644 --- a/pc/dtls_srtp_transport.h +++ b/pc/dtls_srtp_transport.h @@ -46,8 +46,7 @@ class DtlsSrtpTransport : public SrtpTransport { void UpdateRecvEncryptedHeaderExtensionIds( const std::vector& recv_extension_ids); - sigslot::signal SignalDtlsSrtpSetupFailure; - sigslot::signal<> SignalDtlsStateChange; + void SetOnDtlsStateChange(std::function callback); RTCError SetSrtpSendKey(const cricket::CryptoParams& params) override { return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, @@ -97,6 +96,7 @@ class DtlsSrtpTransport : public SrtpTransport { absl::optional> recv_extension_ids_; bool active_reset_srtp_params_ = false; + std::function on_dtls_state_change_; }; } // namespace webrtc diff --git a/pc/jsep_transport_controller.cc b/pc/jsep_transport_controller.cc index 33b6e3f946..be93cd8cb8 100644 --- a/pc/jsep_transport_controller.cc +++ b/pc/jsep_transport_controller.cc @@ -506,8 +506,12 @@ JsepTransportController::CreateDtlsSrtpTransport( dtls_srtp_transport->SetDtlsTransports(rtp_dtls_transport, rtcp_dtls_transport); dtls_srtp_transport->SetActiveResetSrtpParams(active_reset_srtp_params_); - dtls_srtp_transport->SignalDtlsStateChange.connect( - this, &JsepTransportController::UpdateAggregateStates_n); + // Capturing this in the callback because JsepTransportController will always + // outlive the DtlsSrtpTransport. + dtls_srtp_transport->SetOnDtlsStateChange([this]() { + RTC_DCHECK_RUN_ON(this->network_thread_); + this->UpdateAggregateStates_n(); + }); return dtls_srtp_transport; }