Replace direct calls to Quic*AddressImpl() with helper methods
[email protected]
Change-Id: I9860fcc880bc1c8a4ceaf94c80dddef69ce383aa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1637665
Reviewed-by: Ryan Hamilton <[email protected]>
Commit-Queue: Victor Vasiliev <[email protected]>
Cr-Commit-Position: refs/heads/master@{#665161}
diff --git a/net/quic/address_utils.h b/net/quic/address_utils.h
index f067db7..c6314ce 100644
--- a/net/quic/address_utils.h
+++ b/net/quic/address_utils.h
@@ -1,3 +1,7 @@
+// Copyright (c) 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
#ifndef NET_QUIC_ADDRESS_UTILS_H_
#define NET_QUIC_ADDRESS_UTILS_H_
@@ -43,6 +47,39 @@
}
}
+inline quic::QuicSocketAddress ToQuicSocketAddress(IPEndPoint address) {
+ if (address.address().empty()) {
+ return quic::QuicSocketAddress();
+ }
+
+ sockaddr_storage result;
+ socklen_t size = sizeof(result);
+ bool success =
+ address.ToSockAddr(reinterpret_cast<sockaddr*>(&result), &size);
+ DCHECK(success);
+ return quic::QuicSocketAddress(result);
+}
+
+inline quic::QuicIpAddress ToQuicIpAddress(net::IPAddress address) {
+ if (address.IsIPv4()) {
+ in_addr result;
+ static_assert(sizeof(result) == IPAddress::kIPv4AddressSize,
+ "Address size mismatch");
+ memcpy(&result, address.bytes().data(), IPAddress::kIPv4AddressSize);
+ return quic::QuicIpAddress(result);
+ }
+ if (address.IsIPv6()) {
+ in6_addr result;
+ static_assert(sizeof(result) == IPAddress::kIPv6AddressSize,
+ "Address size mismatch");
+ memcpy(&result, address.bytes().data(), IPAddress::kIPv6AddressSize);
+ return quic::QuicIpAddress(result);
+ }
+
+ DCHECK(address.empty());
+ return quic::QuicIpAddress();
+}
+
} // namespace net
#endif // NET_QUIC_ADDRESS_UTILS_H_
diff --git a/net/quic/bidirectional_stream_quic_impl_unittest.cc b/net/quic/bidirectional_stream_quic_impl_unittest.cc
index 3256fa844..cb3561e 100644
--- a/net/quic/bidirectional_stream_quic_impl_unittest.cc
+++ b/net/quic/bidirectional_stream_quic_impl_unittest.cc
@@ -23,6 +23,7 @@
#include "net/log/net_log_event_type.h"
#include "net/log/test_net_log.h"
#include "net/log/test_net_log_util.h"
+#include "net/quic/address_utils.h"
#include "net/quic/mock_crypto_client_stream_factory.h"
#include "net/quic/quic_chromium_alarm_factory.h"
#include "net/quic/quic_chromium_connection_helper.h"
@@ -462,10 +463,8 @@
}
void ProcessPacket(std::unique_ptr<quic::QuicReceivedPacket> packet) {
- connection_->ProcessUdpPacket(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(self_addr_)),
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(peer_addr_)),
- *packet);
+ connection_->ProcessUdpPacket(ToQuicSocketAddress(self_addr_),
+ ToQuicSocketAddress(peer_addr_), *packet);
}
// Configures the test fixture to use the list of expected writes.
@@ -494,9 +493,8 @@
new QuicChromiumConnectionHelper(&clock_, &random_generator_));
alarm_factory_.reset(new QuicChromiumAlarmFactory(runner_.get(), &clock_));
connection_ = new quic::QuicConnection(
- connection_id_,
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(peer_addr_)),
- helper_.get(), alarm_factory_.get(),
+ connection_id_, ToQuicSocketAddress(peer_addr_), helper_.get(),
+ alarm_factory_.get(),
new QuicChromiumPacketWriter(socket.get(), runner_.get()),
true /* owns_writer */, quic::Perspective::IS_CLIENT,
quic::test::SupportedVersions(version_));
diff --git a/net/quic/quic_chromium_client_session_test.cc b/net/quic/quic_chromium_client_session_test.cc
index 8e3f623..5cc15a2 100644
--- a/net/quic/quic_chromium_client_session_test.cc
+++ b/net/quic/quic_chromium_client_session_test.cc
@@ -20,6 +20,7 @@
#include "net/http/transport_security_state_test_util.h"
#include "net/log/net_log_source.h"
#include "net/log/test_net_log.h"
+#include "net/quic/address_utils.h"
#include "net/quic/crypto/proof_verifier_chromium.h"
#include "net/quic/mock_crypto_client_stream_factory.h"
#include "net/quic/mock_quic_data.h"
@@ -138,8 +139,8 @@
socket.get(), base::ThreadTaskRunnerHandle::Get().get());
quic::QuicConnection* connection = new quic::QuicConnection(
quic::QuicUtils::CreateRandomConnectionId(&random_),
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(kIpEndPoint)),
- &helper_, &alarm_factory_, writer, true, quic::Perspective::IS_CLIENT,
+ ToQuicSocketAddress(kIpEndPoint), &helper_, &alarm_factory_, writer,
+ true, quic::Perspective::IS_CLIENT,
quic::test::SupportedVersions(version_));
session_.reset(new TestingQuicChromiumClientSession(
connection, std::move(socket),
diff --git a/net/quic/quic_chromium_packet_reader.cc b/net/quic/quic_chromium_packet_reader.cc
index 36083a43..4f7ec5b 100644
--- a/net/quic/quic_chromium_packet_reader.cc
+++ b/net/quic/quic_chromium_packet_reader.cc
@@ -10,6 +10,7 @@
#include "base/single_thread_task_runner.h"
#include "base/threading/thread_task_runner_handle.h"
#include "net/base/net_errors.h"
+#include "net/quic/address_utils.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_clock.h"
namespace net {
@@ -93,10 +94,8 @@
IPEndPoint peer_address;
socket_->GetLocalAddress(&local_address);
socket_->GetPeerAddress(&peer_address);
- return visitor_->OnPacket(
- packet,
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(local_address)),
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(peer_address)));
+ return visitor_->OnPacket(packet, ToQuicSocketAddress(local_address),
+ ToQuicSocketAddress(peer_address));
}
void QuicChromiumPacketReader::OnReadComplete(int result) {
diff --git a/net/quic/quic_connectivity_probing_manager_test.cc b/net/quic/quic_connectivity_probing_manager_test.cc
index 2d4f7fe0..45d12ef4 100644
--- a/net/quic/quic_connectivity_probing_manager_test.cc
+++ b/net/quic/quic_connectivity_probing_manager_test.cc
@@ -7,6 +7,7 @@
#include "base/stl_util.h"
#include "base/test/test_mock_time_task_runner.h"
#include "net/log/test_net_log.h"
+#include "net/quic/address_utils.h"
#include "net/socket/socket_test_util.h"
#include "net/test/gtest_util.h"
#include "net/third_party/quiche/src/quic/test_tools/mock_clock.h"
@@ -26,12 +27,12 @@
const IPEndPoint kIpEndPoint =
IPEndPoint(IPAddress::IPv4AllZeros(), quic::test::kTestPort);
const quic::QuicSocketAddress testPeerAddress =
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(kIpEndPoint));
+ ToQuicSocketAddress(kIpEndPoint);
const IPEndPoint newIpEndPoint =
IPEndPoint(IPAddress::IPv4AllZeros(), quic::test::kTestPort + 1);
const quic::QuicSocketAddress newPeerAddress =
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(newIpEndPoint));
+ ToQuicSocketAddress(newIpEndPoint);
} // anonymous namespace
class MockQuicChromiumClientSession
@@ -102,8 +103,7 @@
EXPECT_THAT(socket_->Connect(kIpEndPoint), IsOk());
IPEndPoint self_address;
socket_->GetLocalAddress(&self_address);
- self_address_ =
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(self_address));
+ self_address_ = ToQuicSocketAddress(self_address);
// Create packet writer and reader for probing.
writer_.reset(
new QuicChromiumPacketWriter(socket_.get(), test_task_runner_.get()));
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index 5138485..f794486 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -29,6 +29,7 @@
#include "net/log/net_log_event_type.h"
#include "net/log/test_net_log.h"
#include "net/log/test_net_log_util.h"
+#include "net/quic/address_utils.h"
#include "net/quic/crypto/proof_verifier_chromium.h"
#include "net/quic/mock_crypto_client_stream_factory.h"
#include "net/quic/quic_chromium_alarm_factory.h"
@@ -91,15 +92,14 @@
QuicChromiumConnectionHelper* helper,
QuicChromiumAlarmFactory* alarm_factory,
quic::QuicPacketWriter* writer)
- : quic::QuicConnection(
- connection_id,
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(address)),
- helper,
- alarm_factory,
- writer,
- true /* owns_writer */,
- quic::Perspective::IS_CLIENT,
- versions) {}
+ : quic::QuicConnection(connection_id,
+ ToQuicSocketAddress(address),
+ helper,
+ alarm_factory,
+ writer,
+ true /* owns_writer */,
+ quic::Perspective::IS_CLIENT,
+ versions) {}
void SetSendAlgorithm(quic::SendAlgorithmInterface* send_algorithm) {
quic::test::QuicConnectionPeer::SetSendAlgorithm(this, send_algorithm);
@@ -249,10 +249,8 @@
}
void ProcessPacket(std::unique_ptr<quic::QuicReceivedPacket> packet) {
- connection_->ProcessUdpPacket(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(self_addr_)),
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(peer_addr_)),
- *packet);
+ connection_->ProcessUdpPacket(ToQuicSocketAddress(self_addr_),
+ ToQuicSocketAddress(peer_addr_), *packet);
}
// Configures the test fixture to use the list of expected writes.
diff --git a/net/quic/quic_proxy_client_socket_unittest.cc b/net/quic/quic_proxy_client_socket_unittest.cc
index 9f3b438..d0d1ffb8 100644
--- a/net/quic/quic_proxy_client_socket_unittest.cc
+++ b/net/quic/quic_proxy_client_socket_unittest.cc
@@ -22,6 +22,7 @@
#include "net/http/transport_security_state.h"
#include "net/log/test_net_log.h"
#include "net/log/test_net_log_util.h"
+#include "net/quic/address_utils.h"
#include "net/quic/crypto/proof_verifier_chromium.h"
#include "net/quic/mock_crypto_client_stream_factory.h"
#include "net/quic/mock_quic_data.h"
@@ -192,9 +193,8 @@
QuicChromiumPacketWriter* writer = new QuicChromiumPacketWriter(
socket.get(), base::ThreadTaskRunnerHandle::Get().get());
quic::QuicConnection* connection = new quic::QuicConnection(
- connection_id_,
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(peer_addr_)),
- helper_.get(), alarm_factory_.get(), writer, true /* owns_writer */,
+ connection_id_, net::ToQuicSocketAddress(peer_addr_), helper_.get(),
+ alarm_factory_.get(), writer, true /* owns_writer */,
quic::Perspective::IS_CLIENT, quic::test::SupportedVersions(version_));
connection->set_visitor(&visitor_);
quic::test::QuicConnectionPeer::SetSendAlgorithm(connection,
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
index 7a73796..7280c3e 100644
--- a/net/quic/quic_stream_factory.cc
+++ b/net/quic/quic_stream_factory.cc
@@ -1821,8 +1821,8 @@
QuicChromiumPacketWriter* writer =
new QuicChromiumPacketWriter(socket.get(), task_runner_);
quic::QuicConnection* connection = new quic::QuicConnection(
- connection_id, quic::QuicSocketAddress(quic::QuicSocketAddressImpl(addr)),
- helper_.get(), alarm_factory_.get(), writer, true /* owns_writer */,
+ connection_id, ToQuicSocketAddress(addr), helper_.get(),
+ alarm_factory_.get(), writer, true /* owns_writer */,
quic::Perspective::IS_CLIENT,
quic::ParsedQuicVersionVector{
quic::ParsedQuicVersion(quic::PROTOCOL_QUIC_CRYPTO, quic_version)});
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index 4c90979..2850d4d0 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -1354,8 +1354,7 @@
"192.168.0.1", "");
IPEndPoint alt_address = IPEndPoint(IPAddress(1, 2, 3, 4), 443);
quic::QuicConfig config;
- config.SetAlternateServerAddressToSend(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(alt_address)));
+ config.SetAlternateServerAddressToSend(ToQuicSocketAddress(alt_address));
VerifyServerMigration(config, alt_address);
@@ -8731,8 +8730,7 @@
// Add alternate IPv4 server address to config.
IPEndPoint alt_address = IPEndPoint(IPAddress(1, 2, 3, 4), 123);
quic::QuicConfig config;
- config.SetAlternateServerAddressToSend(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(alt_address)));
+ config.SetAlternateServerAddressToSend(ToQuicSocketAddress(alt_address));
VerifyServerMigration(config, alt_address);
}
@@ -8744,8 +8742,7 @@
IPEndPoint alt_address = IPEndPoint(
IPAddress(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), 123);
quic::QuicConfig config;
- config.SetAlternateServerAddressToSend(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(alt_address)));
+ config.SetAlternateServerAddressToSend(ToQuicSocketAddress(alt_address));
VerifyServerMigration(config, alt_address);
}
@@ -8756,8 +8753,7 @@
// Add alternate IPv4 server address to config.
IPEndPoint alt_address = IPEndPoint(IPAddress(1, 2, 3, 4), 123);
quic::QuicConfig config;
- config.SetAlternateServerAddressToSend(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(alt_address)));
+ config.SetAlternateServerAddressToSend(ToQuicSocketAddress(alt_address));
IPEndPoint expected_address(
ConvertIPv4ToIPv4MappedIPv6(alt_address.address()), alt_address.port());
VerifyServerMigration(config, expected_address);
@@ -8774,8 +8770,7 @@
IPEndPoint alt_address = IPEndPoint(
IPAddress(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), 123);
quic::QuicConfig config;
- config.SetAlternateServerAddressToSend(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(alt_address)));
+ config.SetAlternateServerAddressToSend(ToQuicSocketAddress(alt_address));
ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
diff --git a/net/tools/quic/quic_client_message_loop_network_helper.cc b/net/tools/quic/quic_client_message_loop_network_helper.cc
index 486aab9..4c1b6c9c 100644
--- a/net/tools/quic/quic_client_message_loop_network_helper.cc
+++ b/net/tools/quic/quic_client_message_loop_network_helper.cc
@@ -85,8 +85,7 @@
LOG(ERROR) << "GetLocalAddress failed: " << ErrorToShortString(rc);
return false;
}
- client_address_ =
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(address));
+ client_address_ = ToQuicSocketAddress(address);
socket_.swap(socket);
packet_reader_.reset(new QuicChromiumPacketReader(
diff --git a/net/tools/quic/quic_simple_client_bin.cc b/net/tools/quic/quic_simple_client_bin.cc
index 125ccc0..ffced83f 100644
--- a/net/tools/quic/quic_simple_client_bin.cc
+++ b/net/tools/quic/quic_simple_client_bin.cc
@@ -47,6 +47,7 @@
#include "net/cert/ct_policy_enforcer.h"
#include "net/cert/multi_log_ct_verifier.h"
#include "net/http/transport_security_state.h"
+#include "net/quic/address_utils.h"
#include "net/quic/crypto/proof_verifier_chromium.h"
#include "net/spdy/spdy_http_utils.h"
#include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
@@ -103,8 +104,7 @@
<< "' : " << net::ErrorToShortString(rv);
return nullptr;
}
- ip_addr =
- quic::QuicIpAddress(quic::QuicIpAddressImpl(addresses[0].address()));
+ ip_addr = net::ToQuicIpAddress(addresses[0].address());
}
quic::QuicServerId server_id(host, port, false);
diff --git a/net/tools/quic/quic_simple_server.cc b/net/tools/quic/quic_simple_server.cc
index 159c413..c5ad9cf 100644
--- a/net/tools/quic/quic_simple_server.cc
+++ b/net/tools/quic/quic_simple_server.cc
@@ -13,6 +13,7 @@
#include "net/base/ip_endpoint.h"
#include "net/base/net_errors.h"
#include "net/log/net_log_source.h"
+#include "net/quic/address_utils.h"
#include "net/socket/udp_server_socket.h"
#include "net/third_party/quiche/src/quic/core/crypto/crypto_handshake.h"
#include "net/third_party/quiche/src/quic/core/crypto/quic_random.h"
@@ -211,10 +212,8 @@
quic::QuicReceivedPacket packet(read_buffer_->data(), result,
helper_->GetClock()->Now(), false);
- dispatcher_->ProcessPacket(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(server_address_)),
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(client_address_)),
- packet);
+ dispatcher_->ProcessPacket(ToQuicSocketAddress(server_address_),
+ ToQuicSocketAddress(client_address_), packet);
StartReading();
}
diff --git a/net/tools/quic/quic_simple_server_test.cc b/net/tools/quic/quic_simple_server_test.cc
index 6f2fcabe..1a9cf12b 100644
--- a/net/tools/quic/quic_simple_server_test.cc
+++ b/net/tools/quic/quic_simple_server_test.cc
@@ -5,6 +5,7 @@
#include "net/tools/quic/quic_simple_server.h"
#include "base/stl_util.h"
+#include "net/quic/address_utils.h"
#include "net/third_party/quiche/src/quic/core/crypto/quic_random.h"
#include "net/third_party/quiche/src/quic/core/quic_crypto_stream.h"
#include "net/third_party/quiche/src/quic/core/quic_utils.h"
@@ -48,10 +49,8 @@
void DispatchPacket(const quic::QuicReceivedPacket& packet) {
IPEndPoint client_addr, server_addr;
- dispatcher_.ProcessPacket(
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(server_addr)),
- quic::QuicSocketAddress(quic::QuicSocketAddressImpl(client_addr)),
- packet);
+ dispatcher_.ProcessPacket(ToQuicSocketAddress(server_addr),
+ ToQuicSocketAddress(client_addr), packet);
}
protected: