Refactor StunProber to use const rtc::Network*
Bug: webrtc:13869
Change-Id: I99645f6b845d2f12c90b3b39aa7bd3f2849a717c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/257165
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36387}
diff --git a/p2p/stunprober/stun_prober.cc b/p2p/stunprober/stun_prober.cc
index efe0fbd..7f3f60b 100644
--- a/p2p/stunprober/stun_prober.cc
+++ b/p2p/stunprober/stun_prober.cc
@@ -38,6 +38,16 @@
counter_per_ip->insert(std::make_pair(ip, 0)).first->second++;
}
+std::vector<const rtc::Network*> NetworkListToConst(
+ const rtc::NetworkManager::NetworkList networks) {
+ std::vector<const rtc::Network*> result;
+ result.reserve(networks.size());
+ for (const rtc::Network* network : networks) {
+ result.push_back(network);
+ }
+ return result;
+}
+
} // namespace
// A requester tracks the requests and responses from a single socket to many
@@ -259,6 +269,14 @@
: interval_ms_(0),
socket_factory_(socket_factory),
thread_(thread),
+ networks_(NetworkListToConst(networks)) {}
+
+StunProber::StunProber(rtc::PacketSocketFactory* socket_factory,
+ rtc::Thread* thread,
+ std::vector<const rtc::Network*> networks)
+ : interval_ms_(0),
+ socket_factory_(socket_factory),
+ thread_(thread),
networks_(networks) {}
StunProber::~StunProber() {
diff --git a/p2p/stunprober/stun_prober.h b/p2p/stunprober/stun_prober.h
index b1acd77..06b1198 100644
--- a/p2p/stunprober/stun_prober.h
+++ b/p2p/stunprober/stun_prober.h
@@ -95,9 +95,15 @@
std::set<std::string> srflx_addrs;
};
+ // TODO(bugs.webrtc.org/13869): Delete, use constructor with const
+ // rtc::Network*.
+ ABSL_DEPRECATED("bugs.webrtc.org/13869")
StunProber(rtc::PacketSocketFactory* socket_factory,
rtc::Thread* thread,
const rtc::NetworkManager::NetworkList& networks);
+ StunProber(rtc::PacketSocketFactory* socket_factory,
+ rtc::Thread* thread,
+ std::vector<const rtc::Network*> networks);
~StunProber() override;
StunProber(const StunProber&) = delete;
@@ -240,7 +246,7 @@
// AsyncCallback.
ObserverAdapter observer_adapter_;
- rtc::NetworkManager::NetworkList networks_;
+ const std::vector<const rtc::Network*> networks_;
webrtc::ScopedTaskSafety task_safety_;
};
diff --git a/p2p/stunprober/stun_prober_unittest.cc b/p2p/stunprober/stun_prober_unittest.cc
index 6ba2c42..5fb491d 100644
--- a/p2p/stunprober/stun_prober_unittest.cc
+++ b/p2p/stunprober/stun_prober_unittest.cc
@@ -13,6 +13,7 @@
#include <stdint.h>
#include <memory>
+#include <utility>
#include "p2p/base/basic_packet_socket_factory.h"
#include "p2p/base/test_stun_server.h"
@@ -40,7 +41,7 @@
class StunProberTest : public ::testing::Test {
public:
StunProberTest()
- : ss_(new rtc::VirtualSocketServer()),
+ : ss_(std::make_unique<rtc::VirtualSocketServer>()),
main_(ss_.get()),
result_(StunProber::SUCCESS),
stun_server_1_(cricket::TestStunServer::Create(ss_.get(), kStunAddr1)),
@@ -54,12 +55,12 @@
void StartProbing(rtc::PacketSocketFactory* socket_factory,
const std::vector<rtc::SocketAddress>& addrs,
- const rtc::NetworkManager::NetworkList& networks,
+ std::vector<const rtc::Network*> networks,
bool shared_socket,
uint16_t interval,
uint16_t pings_per_ip) {
- prober.reset(
- new StunProber(socket_factory, rtc::Thread::Current(), networks));
+ prober = std::make_unique<StunProber>(
+ socket_factory, rtc::Thread::Current(), std::move(networks));
prober->Start(addrs, shared_socket, interval, pings_per_ip,
100 /* timeout_ms */, [this](StunProber* prober, int result) {
this->StopCallback(prober, result);
@@ -77,7 +78,7 @@
rtc::Network ipv4_network1("test_eth0", "Test Network Adapter 1",
rtc::IPAddress(0x12345600U), 24);
ipv4_network1.AddIP(rtc::IPAddress(0x12345678));
- rtc::NetworkManager::NetworkList networks;
+ std::vector<const rtc::Network*> networks;
networks.push_back(&ipv4_network1);
auto socket_factory =
@@ -93,8 +94,8 @@
// kFailedStunAddr.
const uint32_t total_pings_reported = total_pings_tried - pings_per_ip;
- StartProbing(socket_factory.get(), addrs, networks, shared_mode, 3,
- pings_per_ip);
+ StartProbing(socket_factory.get(), addrs, std::move(networks), shared_mode,
+ 3, pings_per_ip);
WAIT(stopped_, 1000);