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:

committed by
Commit Bot

parent
9673ca42ea
commit
133c0524f3
@ -82,7 +82,8 @@ JsepTransportController::JsepTransportController(
|
|||||||
network_thread_(network_thread),
|
network_thread_(network_thread),
|
||||||
port_allocator_(port_allocator),
|
port_allocator_(port_allocator),
|
||||||
async_resolver_factory_(async_resolver_factory),
|
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.
|
// The |transport_observer| is assumed to be non-null.
|
||||||
RTC_DCHECK(config_.transport_observer);
|
RTC_DCHECK(config_.transport_observer);
|
||||||
RTC_DCHECK(config_.rtcp_handler);
|
RTC_DCHECK(config_.rtcp_handler);
|
||||||
@ -395,11 +396,11 @@ void JsepTransportController::SetActiveResetSrtpParams(
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
RTC_DCHECK_RUN_ON(network_thread_);
|
||||||
RTC_LOG(INFO)
|
RTC_LOG(INFO)
|
||||||
<< "Updating the active_reset_srtp_params for JsepTransportController: "
|
<< "Updating the active_reset_srtp_params for JsepTransportController: "
|
||||||
<< active_reset_srtp_params;
|
<< 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_) {
|
for (auto& kv : jsep_transports_by_name_) {
|
||||||
kv.second->SetActiveResetSrtpParams(active_reset_srtp_params);
|
kv.second->SetActiveResetSrtpParams(active_reset_srtp_params);
|
||||||
}
|
}
|
||||||
@ -525,7 +526,7 @@ JsepTransportController::CreateDtlsSrtpTransport(
|
|||||||
const std::string& transport_name,
|
const std::string& transport_name,
|
||||||
cricket::DtlsTransportInternal* rtp_dtls_transport,
|
cricket::DtlsTransportInternal* rtp_dtls_transport,
|
||||||
cricket::DtlsTransportInternal* rtcp_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>(
|
auto dtls_srtp_transport = std::make_unique<webrtc::DtlsSrtpTransport>(
|
||||||
rtcp_dtls_transport == nullptr);
|
rtcp_dtls_transport == nullptr);
|
||||||
if (config_.enable_external_auth) {
|
if (config_.enable_external_auth) {
|
||||||
@ -534,8 +535,7 @@ JsepTransportController::CreateDtlsSrtpTransport(
|
|||||||
|
|
||||||
dtls_srtp_transport->SetDtlsTransports(rtp_dtls_transport,
|
dtls_srtp_transport->SetDtlsTransports(rtp_dtls_transport,
|
||||||
rtcp_dtls_transport);
|
rtcp_dtls_transport);
|
||||||
dtls_srtp_transport->SetActiveResetSrtpParams(
|
dtls_srtp_transport->SetActiveResetSrtpParams(active_reset_srtp_params_);
|
||||||
config_.active_reset_srtp_params);
|
|
||||||
dtls_srtp_transport->SignalDtlsStateChange.connect(
|
dtls_srtp_transport->SignalDtlsStateChange.connect(
|
||||||
this, &JsepTransportController::UpdateAggregateStates_n);
|
this, &JsepTransportController::UpdateAggregateStates_n);
|
||||||
return dtls_srtp_transport;
|
return dtls_srtp_transport;
|
||||||
|
@ -98,6 +98,8 @@ class JsepTransportController : public sigslot::has_slots<> {
|
|||||||
std::function<void(const rtc::CopyOnWriteBuffer& packet,
|
std::function<void(const rtc::CopyOnWriteBuffer& packet,
|
||||||
int64_t packet_time_us)>
|
int64_t packet_time_us)>
|
||||||
rtcp_handler;
|
rtcp_handler;
|
||||||
|
// Initial value for whether DtlsTransport reset causes a reset
|
||||||
|
// of SRTP parameters.
|
||||||
bool active_reset_srtp_params = false;
|
bool active_reset_srtp_params = false;
|
||||||
RtcEventLog* event_log = nullptr;
|
RtcEventLog* event_log = nullptr;
|
||||||
|
|
||||||
@ -441,7 +443,8 @@ class JsepTransportController : public sigslot::has_slots<> {
|
|||||||
PeerConnectionInterface::PeerConnectionState::kNew;
|
PeerConnectionInterface::PeerConnectionState::kNew;
|
||||||
cricket::IceGatheringState ice_gathering_state_ = cricket::kIceGatheringNew;
|
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* local_desc_ = nullptr;
|
||||||
const cricket::SessionDescription* remote_desc_ = nullptr;
|
const cricket::SessionDescription* remote_desc_ = nullptr;
|
||||||
|
Reference in New Issue
Block a user