summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/p2p/stunprober
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
commitfbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch)
tree4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /third_party/libwebrtc/p2p/stunprober
parentReleasing progress-linux version 124.0.1-1~progress7.99u1. (diff)
downloadfirefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz
firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/p2p/stunprober')
-rw-r--r--third_party/libwebrtc/p2p/stunprober/stun_prober.cc34
-rw-r--r--third_party/libwebrtc/p2p/stunprober/stun_prober.h2
-rw-r--r--third_party/libwebrtc/p2p/stunprober/stun_prober_unittest.cc14
3 files changed, 23 insertions, 27 deletions
diff --git a/third_party/libwebrtc/p2p/stunprober/stun_prober.cc b/third_party/libwebrtc/p2p/stunprober/stun_prober.cc
index f5abf43beb..c60e7ede89 100644
--- a/third_party/libwebrtc/p2p/stunprober/stun_prober.cc
+++ b/third_party/libwebrtc/p2p/stunprober/stun_prober.cc
@@ -10,21 +10,21 @@
#include "p2p/stunprober/stun_prober.h"
+#include <cstdint>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <utility>
+#include "api/array_view.h"
#include "api/packet_socket_factory.h"
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/transport/stun.h"
#include "api/units/time_delta.h"
#include "rtc_base/async_packet_socket.h"
-#include "rtc_base/async_resolver_interface.h"
#include "rtc_base/checks.h"
-#include "rtc_base/helpers.h"
-#include "rtc_base/logging.h"
+#include "rtc_base/network/received_packet.h"
#include "rtc_base/thread.h"
#include "rtc_base/time_utils.h"
@@ -60,7 +60,7 @@ class StunProber::Requester : public sigslot::has_slots<> {
rtc::IPAddress server_addr;
int64_t rtt() { return received_time_ms - sent_time_ms; }
- void ProcessResponse(const char* buf, size_t buf_len);
+ void ProcessResponse(rtc::ArrayView<const uint8_t> payload);
};
// StunProber provides `server_ips` for Requester to probe. For shared
@@ -80,10 +80,7 @@ class StunProber::Requester : public sigslot::has_slots<> {
void SendStunRequest();
void OnStunResponseReceived(rtc::AsyncPacketSocket* socket,
- const char* buf,
- size_t size,
- const rtc::SocketAddress& addr,
- const int64_t& packet_time_us);
+ const rtc::ReceivedPacket& packet);
const std::vector<Request*>& requests() { return requests_; }
@@ -121,8 +118,10 @@ StunProber::Requester::Requester(
response_packet_(new rtc::ByteBufferWriter(nullptr, kMaxUdpBufferSize)),
server_ips_(server_ips),
thread_checker_(prober->thread_checker_) {
- socket_->SignalReadPacket.connect(
- this, &StunProber::Requester::OnStunResponseReceived);
+ socket_->RegisterReceivedPacketCallback(
+ [&](rtc::AsyncPacketSocket* socket, const rtc::ReceivedPacket& packet) {
+ OnStunResponseReceived(socket, packet);
+ });
}
StunProber::Requester::~Requester() {
@@ -170,10 +169,10 @@ void StunProber::Requester::SendStunRequest() {
RTC_DCHECK(static_cast<size_t>(num_request_sent_) <= server_ips_.size());
}
-void StunProber::Requester::Request::ProcessResponse(const char* buf,
- size_t buf_len) {
+void StunProber::Requester::Request::ProcessResponse(
+ rtc::ArrayView<const uint8_t> payload) {
int64_t now = rtc::TimeMillis();
- rtc::ByteBufferReader message(buf, buf_len);
+ rtc::ByteBufferReader message(payload);
cricket::StunMessage stun_response;
if (!stun_response.Read(&message)) {
// Invalid or incomplete STUN packet.
@@ -201,13 +200,10 @@ void StunProber::Requester::Request::ProcessResponse(const char* buf,
void StunProber::Requester::OnStunResponseReceived(
rtc::AsyncPacketSocket* socket,
- const char* buf,
- size_t size,
- const rtc::SocketAddress& addr,
- const int64_t& /* packet_time_us */) {
+ const rtc::ReceivedPacket& packet) {
RTC_DCHECK(thread_checker_.IsCurrent());
RTC_DCHECK(socket_);
- Request* request = GetRequestByAddress(addr.ipaddr());
+ Request* request = GetRequestByAddress(packet.source_address().ipaddr());
if (!request) {
// Something is wrong, finish the test.
prober_->ReportOnFinished(GENERIC_FAILURE);
@@ -215,7 +211,7 @@ void StunProber::Requester::OnStunResponseReceived(
}
num_response_received_++;
- request->ProcessResponse(buf, size);
+ request->ProcessResponse(packet.payload());
}
StunProber::Requester::Request* StunProber::Requester::GetRequestByAddress(
diff --git a/third_party/libwebrtc/p2p/stunprober/stun_prober.h b/third_party/libwebrtc/p2p/stunprober/stun_prober.h
index 3f0f4a2476..07f3a17233 100644
--- a/third_party/libwebrtc/p2p/stunprober/stun_prober.h
+++ b/third_party/libwebrtc/p2p/stunprober/stun_prober.h
@@ -19,8 +19,6 @@
#include "api/async_dns_resolver.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
-#include "rtc_base/byte_buffer.h"
-#include "rtc_base/ip_address.h"
#include "rtc_base/network.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/system/rtc_export.h"
diff --git a/third_party/libwebrtc/p2p/stunprober/stun_prober_unittest.cc b/third_party/libwebrtc/p2p/stunprober/stun_prober_unittest.cc
index ca20fccb6b..1aa2be2844 100644
--- a/third_party/libwebrtc/p2p/stunprober/stun_prober_unittest.cc
+++ b/third_party/libwebrtc/p2p/stunprober/stun_prober_unittest.cc
@@ -44,8 +44,10 @@ class StunProberTest : public ::testing::Test {
: ss_(std::make_unique<rtc::VirtualSocketServer>()),
main_(ss_.get()),
result_(StunProber::SUCCESS),
- stun_server_1_(cricket::TestStunServer::Create(ss_.get(), kStunAddr1)),
- stun_server_2_(cricket::TestStunServer::Create(ss_.get(), kStunAddr2)) {
+ stun_server_1_(
+ cricket::TestStunServer::Create(ss_.get(), kStunAddr1, main_)),
+ stun_server_2_(
+ cricket::TestStunServer::Create(ss_.get(), kStunAddr2, main_)) {
stun_server_1_->set_fake_stun_addr(kStunMappedAddr);
stun_server_2_->set_fake_stun_addr(kStunMappedAddr);
rtc::InitializeSSL();
@@ -57,8 +59,8 @@ class StunProberTest : public ::testing::Test {
void CreateProber(rtc::PacketSocketFactory* socket_factory,
std::vector<const rtc::Network*> networks) {
- prober_ = std::make_unique<StunProber>(
- socket_factory, rtc::Thread::Current(), std::move(networks));
+ prober_ = std::make_unique<StunProber>(socket_factory, &main_,
+ std::move(networks));
}
void StartProbing(rtc::PacketSocketFactory* socket_factory,
@@ -137,8 +139,8 @@ class StunProberTest : public ::testing::Test {
std::unique_ptr<StunProber> prober_;
int result_ = 0;
bool stopped_ = false;
- std::unique_ptr<cricket::TestStunServer> stun_server_1_;
- std::unique_ptr<cricket::TestStunServer> stun_server_2_;
+ cricket::TestStunServer::StunServerPtr stun_server_1_;
+ cricket::TestStunServer::StunServerPtr stun_server_2_;
StunProber::Stats stats_;
};