Add config to to enable/disable permissions checks in EmulatedTURNServer
Bug: chromium:1024965
Change-Id: I91b8d29932f08b3011635e62a0879c645b89f106
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/372260
Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43611}
diff --git a/api/test/network_emulation_manager.h b/api/test/network_emulation_manager.h
index 5e20be5..338e167 100644
--- a/api/test/network_emulation_manager.h
+++ b/api/test/network_emulation_manager.h
@@ -92,6 +92,7 @@
struct EmulatedTURNServerConfig {
EmulatedEndpointConfig client_config;
EmulatedEndpointConfig peer_config;
+ bool enable_permission_checks = true;
};
// EmulatedTURNServer is an abstraction for a TURN server.
diff --git a/test/network/emulated_turn_server.cc b/test/network/emulated_turn_server.cc
index 47d2c9c..049ea46 100644
--- a/test/network/emulated_turn_server.cc
+++ b/test/network/emulated_turn_server.cc
@@ -119,18 +119,21 @@
const rtc::SocketAddress local_address_;
};
-EmulatedTURNServer::EmulatedTURNServer(std::unique_ptr<rtc::Thread> thread,
+EmulatedTURNServer::EmulatedTURNServer(const EmulatedTURNServerConfig& config,
+ std::unique_ptr<rtc::Thread> thread,
EmulatedEndpoint* client,
EmulatedEndpoint* peer)
: thread_(std::move(thread)), client_(client), peer_(peer) {
ice_config_.username = "keso";
ice_config_.password = "keso";
- SendTask(thread_.get(), [this]() {
+ SendTask(thread_.get(), [this, enable_permission_checks =
+ config.enable_permission_checks]() {
RTC_DCHECK_RUN_ON(thread_.get());
turn_server_ = std::make_unique<cricket::TurnServer>(thread_.get());
turn_server_->set_realm(kTestRealm);
turn_server_->set_realm(kTestSoftware);
turn_server_->set_auth_hook(this);
+ turn_server_->set_enable_permission_checks(enable_permission_checks);
auto client_socket = Wrap(client_);
turn_server_->AddInternalSocket(client_socket, cricket::PROTO_UDP);
diff --git a/test/network/emulated_turn_server.h b/test/network/emulated_turn_server.h
index de5d266..557d83d 100644
--- a/test/network/emulated_turn_server.h
+++ b/test/network/emulated_turn_server.h
@@ -42,7 +42,8 @@
// Create an EmulatedTURNServer.
// `thread` is a thread that will be used to run cricket::TurnServer
// that expects all calls to be made from a single thread.
- EmulatedTURNServer(std::unique_ptr<rtc::Thread> thread,
+ EmulatedTURNServer(const EmulatedTURNServerConfig& config,
+ std::unique_ptr<rtc::Thread> thread,
EmulatedEndpoint* client,
EmulatedEndpoint* peer);
~EmulatedTURNServer() override;
diff --git a/test/network/network_emulation_manager.cc b/test/network/network_emulation_manager.cc
index 47de184..becad9d 100644
--- a/test/network/network_emulation_manager.cc
+++ b/test/network/network_emulation_manager.cc
@@ -371,7 +371,7 @@
str.AppendFormat("turn_server_%u",
static_cast<unsigned>(turn_servers_.size()));
auto turn = std::make_unique<EmulatedTURNServer>(
- time_controller_->CreateThread(str.str()), client, peer);
+ config, time_controller_->CreateThread(str.str()), client, peer);
auto out = turn.get();
turn_servers_.push_back(std::move(turn));
return out;