Make the config_ member of JsepTransportController const
This makes the config_ member thread-safe.
Required breaking out active_reset_srtp_params as a new member
variable, guarded by the network thread.
Bug: none
Change-Id: I81d542744116e5355c53695ea5531735587ba438
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/204200
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33103}
diff --git a/pc/jsep_transport_controller.cc b/pc/jsep_transport_controller.cc
index 9ab8fb9..7e5f893 100644
--- a/pc/jsep_transport_controller.cc
+++ b/pc/jsep_transport_controller.cc
@@ -82,7 +82,8 @@
network_thread_(network_thread),
port_allocator_(port_allocator),
async_resolver_factory_(async_resolver_factory),
- config_(config) {
+ config_(config),
+ active_reset_srtp_params_(config.active_reset_srtp_params) {
// The |transport_observer| is assumed to be non-null.
RTC_DCHECK(config_.transport_observer);
RTC_DCHECK(config_.rtcp_handler);
@@ -395,11 +396,11 @@
});
return;
}
-
+ RTC_DCHECK_RUN_ON(network_thread_);
RTC_LOG(INFO)
<< "Updating the active_reset_srtp_params for JsepTransportController: "
<< active_reset_srtp_params;
- config_.active_reset_srtp_params = active_reset_srtp_params;
+ active_reset_srtp_params_ = active_reset_srtp_params;
for (auto& kv : jsep_transports_by_name_) {
kv.second->SetActiveResetSrtpParams(active_reset_srtp_params);
}
@@ -525,7 +526,7 @@
const std::string& transport_name,
cricket::DtlsTransportInternal* rtp_dtls_transport,
cricket::DtlsTransportInternal* rtcp_dtls_transport) {
- RTC_DCHECK(network_thread_->IsCurrent());
+ RTC_DCHECK_RUN_ON(network_thread_);
auto dtls_srtp_transport = std::make_unique<webrtc::DtlsSrtpTransport>(
rtcp_dtls_transport == nullptr);
if (config_.enable_external_auth) {
@@ -534,8 +535,7 @@
dtls_srtp_transport->SetDtlsTransports(rtp_dtls_transport,
rtcp_dtls_transport);
- dtls_srtp_transport->SetActiveResetSrtpParams(
- config_.active_reset_srtp_params);
+ dtls_srtp_transport->SetActiveResetSrtpParams(active_reset_srtp_params_);
dtls_srtp_transport->SignalDtlsStateChange.connect(
this, &JsepTransportController::UpdateAggregateStates_n);
return dtls_srtp_transport;
diff --git a/pc/jsep_transport_controller.h b/pc/jsep_transport_controller.h
index 2f9d8a0..ced7804 100644
--- a/pc/jsep_transport_controller.h
+++ b/pc/jsep_transport_controller.h
@@ -98,6 +98,8 @@
std::function<void(const rtc::CopyOnWriteBuffer& packet,
int64_t packet_time_us)>
rtcp_handler;
+ // Initial value for whether DtlsTransport reset causes a reset
+ // of SRTP parameters.
bool active_reset_srtp_params = false;
RtcEventLog* event_log = nullptr;
@@ -441,7 +443,8 @@
PeerConnectionInterface::PeerConnectionState::kNew;
cricket::IceGatheringState ice_gathering_state_ = cricket::kIceGatheringNew;
- Config config_;
+ const Config config_;
+ bool active_reset_srtp_params_ RTC_GUARDED_BY(network_thread_);
const cricket::SessionDescription* local_desc_ = nullptr;
const cricket::SessionDescription* remote_desc_ = nullptr;