Delete BasicPacketSocketFactory default constructor
Update users to pass in the appropriate rtc::SocketFactory, instead of
relying on BasicPacketSocketFactory using the rtc::SocketServer
associated with the thread the constructor runs on.
Bug: webrtc:13145
Change-Id: I74eca1ce2c5885c14372a797f6374825b1bc1873
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231134
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34914}
diff --git a/examples/stunprober/main.cc b/examples/stunprober/main.cc
index abd35e3..fa5825c 100644
--- a/examples/stunprober/main.cc
+++ b/examples/stunprober/main.cc
@@ -21,6 +21,7 @@
#include "rtc_base/helpers.h"
#include "rtc_base/logging.h"
#include "rtc_base/network.h"
+#include "rtc_base/physical_socket_server.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/ssl_adapter.h"
#include "rtc_base/thread.h"
@@ -122,23 +123,23 @@
rtc::InitializeSSL();
rtc::InitRandom(rtc::Time32());
- rtc::Thread* thread = rtc::ThreadManager::Instance()->WrapCurrentThread();
- std::unique_ptr<rtc::BasicPacketSocketFactory> socket_factory(
- new rtc::BasicPacketSocketFactory());
+ rtc::PhysicalSocketServer socket_server;
+ rtc::AutoSocketServerThread thread(&socket_server);
+ auto socket_factory =
+ std::make_unique<rtc::BasicPacketSocketFactory>(&socket_server);
std::unique_ptr<rtc::BasicNetworkManager> network_manager(
new rtc::BasicNetworkManager());
rtc::NetworkManager::NetworkList networks;
network_manager->GetNetworks(&networks);
- StunProber* prober =
- new StunProber(socket_factory.get(), rtc::Thread::Current(), networks);
- auto finish_callback = [thread](StunProber* prober, int result) {
- StopTrial(thread, prober, result);
+ auto prober = std::make_unique<StunProber>(socket_factory.get(),
+ rtc::Thread::Current(), networks);
+ auto finish_callback = [&thread](StunProber* prober, int result) {
+ StopTrial(&thread, prober, result);
};
prober->Start(server_addresses, absl::GetFlag(FLAGS_shared_socket),
absl::GetFlag(FLAGS_interval),
absl::GetFlag(FLAGS_pings_per_ip), absl::GetFlag(FLAGS_timeout),
AsyncCallback(finish_callback));
- thread->Run();
- delete prober;
+ thread.Run();
return 0;
}
diff --git a/examples/turnserver/turnserver_main.cc b/examples/turnserver/turnserver_main.cc
index 5e2a747..055d9ba 100644
--- a/examples/turnserver/turnserver_main.cc
+++ b/examples/turnserver/turnserver_main.cc
@@ -20,8 +20,8 @@
#include "p2p/base/turn_server.h"
#include "rtc_base/async_udp_socket.h"
#include "rtc_base/ip_address.h"
+#include "rtc_base/physical_socket_server.h"
#include "rtc_base/socket_address.h"
-#include "rtc_base/socket_server.h"
#include "rtc_base/thread.h"
namespace {
@@ -69,16 +69,17 @@
return 1;
}
- rtc::Thread* main = rtc::Thread::Current();
+ rtc::PhysicalSocketServer socket_server;
+ rtc::AutoSocketServerThread main(&socket_server);
rtc::AsyncUDPSocket* int_socket =
- rtc::AsyncUDPSocket::Create(main->socketserver(), int_addr);
+ rtc::AsyncUDPSocket::Create(&socket_server, int_addr);
if (!int_socket) {
std::cerr << "Failed to create a UDP socket bound at" << int_addr.ToString()
<< std::endl;
return 1;
}
- cricket::TurnServer server(main);
+ cricket::TurnServer server(&main);
std::fstream auth_file(argv[4], std::fstream::in);
TurnFileAuth auth(auth_file.is_open()
@@ -88,11 +89,12 @@
server.set_software(kSoftware);
server.set_auth_hook(&auth);
server.AddInternalSocket(int_socket, cricket::PROTO_UDP);
- server.SetExternalSocketFactory(new rtc::BasicPacketSocketFactory(),
- rtc::SocketAddress(ext_addr, 0));
+ server.SetExternalSocketFactory(
+ new rtc::BasicPacketSocketFactory(&socket_server),
+ rtc::SocketAddress(ext_addr, 0));
std::cout << "Listening internally at " << int_addr.ToString() << std::endl;
- main->Run();
+ main.Run();
return 0;
}
diff --git a/p2p/base/basic_packet_socket_factory.cc b/p2p/base/basic_packet_socket_factory.cc
index 4aaad7c..4cba270 100644
--- a/p2p/base/basic_packet_socket_factory.cc
+++ b/p2p/base/basic_packet_socket_factory.cc
@@ -29,9 +29,6 @@
namespace rtc {
-BasicPacketSocketFactory::BasicPacketSocketFactory()
- : thread_(Thread::Current()), socket_factory_(NULL) {}
-
BasicPacketSocketFactory::BasicPacketSocketFactory(Thread* thread)
: thread_(thread), socket_factory_(NULL) {}
diff --git a/p2p/base/basic_packet_socket_factory.h b/p2p/base/basic_packet_socket_factory.h
index 22f3024..368c976 100644
--- a/p2p/base/basic_packet_socket_factory.h
+++ b/p2p/base/basic_packet_socket_factory.h
@@ -23,7 +23,6 @@
class BasicPacketSocketFactory : public PacketSocketFactory {
public:
- BasicPacketSocketFactory();
explicit BasicPacketSocketFactory(Thread* thread);
explicit BasicPacketSocketFactory(SocketFactory* socket_factory);
~BasicPacketSocketFactory() override;
diff --git a/p2p/base/turn_server_unittest.cc b/p2p/base/turn_server_unittest.cc
index d9bc41b..e534f65 100644
--- a/p2p/base/turn_server_unittest.cc
+++ b/p2p/base/turn_server_unittest.cc
@@ -21,7 +21,7 @@
class TurnServerConnectionTest : public ::testing::Test {
public:
- TurnServerConnectionTest() : thread_(&vss_) {}
+ TurnServerConnectionTest() : thread_(&vss_), socket_factory_(&vss_) {}
void ExpectEqual(const TurnServerConnection& a,
const TurnServerConnection& b) {
@@ -41,8 +41,6 @@
protected:
rtc::VirtualSocketServer vss_;
rtc::AutoSocketServerThread thread_;
- // Since this is constructed after `thread_`, it will pick up `threads_`'s
- // socket server.
rtc::BasicPacketSocketFactory socket_factory_;
};
diff --git a/p2p/client/basic_port_allocator_unittest.cc b/p2p/client/basic_port_allocator_unittest.cc
index 4925c26..52ba168 100644
--- a/p2p/client/basic_port_allocator_unittest.cc
+++ b/p2p/client/basic_port_allocator_unittest.cc
@@ -470,7 +470,8 @@
rtc::NAT_OPEN_CONE, vss_.get(), kNatUdpAddr, kNatTcpAddr, vss_.get(),
rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)));
} else {
- nat_socket_factory_.reset(new rtc::BasicPacketSocketFactory());
+ nat_socket_factory_ =
+ std::make_unique<rtc::BasicPacketSocketFactory>(fss_.get());
}
ServerAddresses stun_servers;
diff --git a/p2p/stunprober/stun_prober_unittest.cc b/p2p/stunprober/stun_prober_unittest.cc
index e098ec6..6ba2c42 100644
--- a/p2p/stunprober/stun_prober_unittest.cc
+++ b/p2p/stunprober/stun_prober_unittest.cc
@@ -80,8 +80,8 @@
rtc::NetworkManager::NetworkList networks;
networks.push_back(&ipv4_network1);
- std::unique_ptr<rtc::BasicPacketSocketFactory> socket_factory(
- new rtc::BasicPacketSocketFactory());
+ auto socket_factory =
+ std::make_unique<rtc::BasicPacketSocketFactory>(ss_.get());
// Set up the expected results for verification.
std::set<std::string> srflx_addresses;