diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
commit | fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch) | |
tree | 4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /third_party/libwebrtc/p2p/stunprober | |
parent | Releasing progress-linux version 124.0.1-1~progress7.99u1. (diff) | |
download | firefox-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.cc | 34 | ||||
-rw-r--r-- | third_party/libwebrtc/p2p/stunprober/stun_prober.h | 2 | ||||
-rw-r--r-- | third_party/libwebrtc/p2p/stunprober/stun_prober_unittest.cc | 14 |
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_; }; |