Remove TURN port's duplicate pointer to field_trials.
Base port already keeps an AlwaysValidPointer to field_trials, so
TURN port's duplicate, private copy is redundant.
Bug: webrtc:14319, webrtc:14131
Change-Id: I94ee78ca5140c0b67826fbb94c35e28f30add943
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270627
Reviewed-by: Jonas Oreland <jonaso@google.com>
Commit-Queue: Sameer Vijaykar <samvi@google.com>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37735}
diff --git a/p2p/base/port.cc b/p2p/base/port.cc
index 7335b70..ab4d447 100644
--- a/p2p/base/port.cc
+++ b/p2p/base/port.cc
@@ -175,7 +175,7 @@
password_ = rtc::CreateRandomString(ICE_PWD_LENGTH);
}
network_->SignalTypeChanged.connect(this, &Port::OnNetworkTypeChanged);
- network_cost_ = network_->GetCost(*field_trials_);
+ network_cost_ = network_->GetCost(field_trials());
thread_->PostDelayed(RTC_FROM_HERE, timeout_delay_, this,
MSG_DESTROY_IF_DEAD);
@@ -869,7 +869,7 @@
// TODO(honghaiz): Make the network cost configurable from user setting.
void Port::UpdateNetworkCost() {
RTC_DCHECK_RUN_ON(thread_);
- uint16_t new_cost = network_->GetCost(*field_trials_);
+ uint16_t new_cost = network_->GetCost(field_trials());
if (network_cost_ == new_cost) {
return;
}
diff --git a/p2p/base/port.h b/p2p/base/port.h
index 8803e6c..ceb435d 100644
--- a/p2p/base/port.h
+++ b/p2p/base/port.h
@@ -465,6 +465,8 @@
mdns_name_registration_status_ = status;
}
+ const webrtc::FieldTrialsView& field_trials() const { return *field_trials_; }
+
private:
void Construct();
diff --git a/p2p/base/turn_port.cc b/p2p/base/turn_port.cc
index 5d24ceb..67b82c0 100644
--- a/p2p/base/turn_port.cc
+++ b/p2p/base/turn_port.cc
@@ -248,8 +248,7 @@
state_(STATE_CONNECTING),
server_priority_(server_priority),
allocate_mismatch_retries_(0),
- turn_customizer_(customizer),
- field_trials_(field_trials) {}
+ turn_customizer_(customizer) {}
TurnPort::TurnPort(rtc::Thread* thread,
rtc::PacketSocketFactory* factory,
@@ -292,8 +291,7 @@
state_(STATE_CONNECTING),
server_priority_(server_priority),
allocate_mismatch_retries_(0),
- turn_customizer_(customizer),
- field_trials_(field_trials) {}
+ turn_customizer_(customizer) {}
TurnPort::~TurnPort() {
// TODO(juberti): Should this even be necessary?
@@ -358,7 +356,7 @@
server_address_.address.SetPort(TURN_DEFAULT_PORT);
}
- if (!AllowedTurnPort(server_address_.address.port(), field_trials_)) {
+ if (!AllowedTurnPort(server_address_.address.port(), &field_trials())) {
// This can only happen after a 300 ALTERNATE SERVER, since the port can't
// be created with a disallowed port number.
RTC_LOG(LS_ERROR) << "Attempt to start allocation with disallowed port# "
@@ -1253,8 +1251,7 @@
RTC_DCHECK(GetConnection(addr));
}
- if (field_trials_ &&
- field_trials_->IsEnabled("WebRTC-TurnAddMultiMapping")) {
+ if (field_trials().IsEnabled("WebRTC-TurnAddMultiMapping")) {
if (entry->get_remote_ufrag() != remote_ufrag) {
RTC_LOG(LS_INFO) << ToString()
<< ": remote ufrag updated."
@@ -1655,8 +1652,7 @@
RTC_DCHECK_EQ(message->type(), TURN_CREATE_PERMISSION_REQUEST);
message->AddAttribute(std::make_unique<StunXorAddressAttribute>(
STUN_ATTR_XOR_PEER_ADDRESS, ext_addr_));
- if (port_->field_trials_ &&
- port_->field_trials_->IsEnabled("WebRTC-TurnAddMultiMapping")) {
+ if (port_->field_trials().IsEnabled("WebRTC-TurnAddMultiMapping")) {
message->AddAttribute(std::make_unique<cricket::StunByteStringAttribute>(
STUN_ATTR_MULTI_MAPPING, remote_ufrag_));
}
diff --git a/p2p/base/turn_port.h b/p2p/base/turn_port.h
index 2e61d36..e33f75e 100644
--- a/p2p/base/turn_port.h
+++ b/p2p/base/turn_port.h
@@ -368,8 +368,6 @@
// must outlive the TurnPort's lifetime.
webrtc::TurnCustomizer* turn_customizer_ = nullptr;
- const webrtc::FieldTrialsView* field_trials_;
-
// Optional TurnLoggingId.
// An identifier set by application that is added to TURN_ALLOCATE_REQUEST
// and can be used to match client/backend logs.