Use CallbackList in DtlsHandshakeError in dtls_transport.
- Signal is transferred from jsep_transport_controller to dtls_transport, jsep_transport_controller is already using Callbacklist and this modified the dtls_transport to use callback_list. Bug: webrtc:11943 Change-Id: I4a7ed08e6dab21b8eb515d4d8971f9b084fb8c86 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203722 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33137}
This commit is contained in:

committed by
Commit Bot

parent
c8421c4c3e
commit
16ab60c4c6
@ -98,6 +98,7 @@ rtc_library("rtc_p2p") {
|
|||||||
"../rtc_base",
|
"../rtc_base",
|
||||||
"../rtc_base:async_resolver_interface",
|
"../rtc_base:async_resolver_interface",
|
||||||
"../rtc_base:async_socket",
|
"../rtc_base:async_socket",
|
||||||
|
"../rtc_base:callback_list",
|
||||||
"../rtc_base:checks",
|
"../rtc_base:checks",
|
||||||
"../rtc_base:ip_address",
|
"../rtc_base:ip_address",
|
||||||
"../rtc_base:net_helpers",
|
"../rtc_base:net_helpers",
|
||||||
|
@ -820,7 +820,9 @@ void DtlsTransport::set_dtls_state(DtlsTransportState state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DtlsTransport::OnDtlsHandshakeError(rtc::SSLHandshakeError error) {
|
void DtlsTransport::OnDtlsHandshakeError(rtc::SSLHandshakeError error) {
|
||||||
|
// Keep the old signaling for downstream usage.
|
||||||
SignalDtlsHandshakeError(error);
|
SignalDtlsHandshakeError(error);
|
||||||
|
SendDtlsHandshakeError(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DtlsTransport::ConfigureHandshakeTimeout() {
|
void DtlsTransport::ConfigureHandshakeTimeout() {
|
||||||
|
@ -16,12 +16,14 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "api/crypto/crypto_options.h"
|
#include "api/crypto/crypto_options.h"
|
||||||
#include "api/dtls_transport_interface.h"
|
#include "api/dtls_transport_interface.h"
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "p2p/base/ice_transport_internal.h"
|
#include "p2p/base/ice_transport_internal.h"
|
||||||
#include "p2p/base/packet_transport_internal.h"
|
#include "p2p/base/packet_transport_internal.h"
|
||||||
|
#include "rtc_base/callback_list.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
#include "rtc_base/constructor_magic.h"
|
||||||
#include "rtc_base/ssl_certificate.h"
|
#include "rtc_base/ssl_certificate.h"
|
||||||
#include "rtc_base/ssl_fingerprint.h"
|
#include "rtc_base/ssl_fingerprint.h"
|
||||||
@ -116,12 +118,23 @@ class DtlsTransportInternal : public rtc::PacketTransportInternal {
|
|||||||
|
|
||||||
// Emitted whenever the Dtls handshake failed on some transport channel.
|
// Emitted whenever the Dtls handshake failed on some transport channel.
|
||||||
sigslot::signal1<rtc::SSLHandshakeError> SignalDtlsHandshakeError;
|
sigslot::signal1<rtc::SSLHandshakeError> SignalDtlsHandshakeError;
|
||||||
|
// F: void(rtc::SSLHandshakeError)
|
||||||
|
template <typename F>
|
||||||
|
void SubscribeDtlsHandshakeError(F&& callback) {
|
||||||
|
dtls_handshake_error_callback_list_.AddReceiver(std::forward<F>(callback));
|
||||||
|
}
|
||||||
|
|
||||||
|
void SendDtlsHandshakeError(rtc::SSLHandshakeError error) {
|
||||||
|
dtls_handshake_error_callback_list_.Send(error);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DtlsTransportInternal();
|
DtlsTransportInternal();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(DtlsTransportInternal);
|
RTC_DISALLOW_COPY_AND_ASSIGN(DtlsTransportInternal);
|
||||||
|
webrtc::CallbackList<const rtc::SSLHandshakeError>
|
||||||
|
dtls_handshake_error_callback_list_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace cricket
|
} // namespace cricket
|
||||||
|
@ -477,8 +477,6 @@ JsepTransportController::CreateDtlsTransport(
|
|||||||
this, &JsepTransportController::OnTransportWritableState_n);
|
this, &JsepTransportController::OnTransportWritableState_n);
|
||||||
dtls->SignalReceivingState.connect(
|
dtls->SignalReceivingState.connect(
|
||||||
this, &JsepTransportController::OnTransportReceivingState_n);
|
this, &JsepTransportController::OnTransportReceivingState_n);
|
||||||
dtls->SignalDtlsHandshakeError.connect(
|
|
||||||
this, &JsepTransportController::OnDtlsHandshakeError);
|
|
||||||
dtls->ice_transport()->SignalGatheringState.connect(
|
dtls->ice_transport()->SignalGatheringState.connect(
|
||||||
this, &JsepTransportController::OnTransportGatheringState_n);
|
this, &JsepTransportController::OnTransportGatheringState_n);
|
||||||
dtls->ice_transport()->SignalCandidateGathered.connect(
|
dtls->ice_transport()->SignalCandidateGathered.connect(
|
||||||
@ -495,6 +493,9 @@ JsepTransportController::CreateDtlsTransport(
|
|||||||
this, &JsepTransportController::OnTransportStateChanged_n);
|
this, &JsepTransportController::OnTransportStateChanged_n);
|
||||||
dtls->ice_transport()->SignalCandidatePairChanged.connect(
|
dtls->ice_transport()->SignalCandidatePairChanged.connect(
|
||||||
this, &JsepTransportController::OnTransportCandidatePairChanged_n);
|
this, &JsepTransportController::OnTransportCandidatePairChanged_n);
|
||||||
|
|
||||||
|
dtls->SubscribeDtlsHandshakeError(
|
||||||
|
[this](rtc::SSLHandshakeError error) { OnDtlsHandshakeError(error); });
|
||||||
return dtls;
|
return dtls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user