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}
This commit is contained in:
Harald Alvestrand
2021-01-29 14:27:12 +00:00
committed by Commit Bot
parent 9673ca42ea
commit 133c0524f3
2 changed files with 10 additions and 7 deletions

View File

@ -82,7 +82,8 @@ JsepTransportController::JsepTransportController(
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 @@ void JsepTransportController::SetActiveResetSrtpParams(
});
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 @@ JsepTransportController::CreateDtlsSrtpTransport(
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 @@ JsepTransportController::CreateDtlsSrtpTransport(
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;

View File

@ -98,6 +98,8 @@ class JsepTransportController : public sigslot::has_slots<> {
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 @@ class JsepTransportController : public sigslot::has_slots<> {
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;