Set initial self address for all server QUIC connections and client connections that know its own address.

Protected by FLAGS_quic_reloadable_flag_quic_connection_set_initial_self_address.

PiperOrigin-RevId: 334900288
Change-Id: I06ef5fe30bf63a4cebcf97a17efc577eb7fcc29a
diff --git a/quic/test_tools/first_flight.cc b/quic/test_tools/first_flight.cc
index e4d2816..665f479 100644
--- a/quic/test_tools/first_flight.cc
+++ b/quic/test_tools/first_flight.cc
@@ -46,6 +46,7 @@
     crypto_config_.set_alpn(AlpnForVersion(version_));
     connection_ =
         new QuicConnection(server_connection_id_,
+                           /*initial_self_address=*/QuicSocketAddress(),
                            QuicSocketAddress(TestPeerIPAddress(), kTestPort),
                            &connection_helper_, &alarm_factory_, &writer_,
                            /*owns_writer=*/false, Perspective::IS_CLIENT,
diff --git a/quic/test_tools/quic_test_server.cc b/quic/test_tools/quic_test_server.cc
index f311079..9d705d3 100644
--- a/quic/test_tools/quic_test_server.cc
+++ b/quic/test_tools/quic_test_server.cc
@@ -106,7 +106,7 @@
           id, self_address, peer_address, alpn, version);
     }
     QuicConnection* connection = new QuicConnection(
-        id, peer_address, helper(), alarm_factory(), writer(),
+        id, self_address, peer_address, helper(), alarm_factory(), writer(),
         /* owns_writer= */ false, Perspective::IS_SERVER,
         ParsedQuicVersionVector{version});
 
diff --git a/quic/test_tools/quic_test_utils.cc b/quic/test_tools/quic_test_utils.cc
index ed7dc75..6fa77c0 100644
--- a/quic/test_tools/quic_test_utils.cc
+++ b/quic/test_tools/quic_test_utils.cc
@@ -525,19 +525,21 @@
 
 MockQuicConnection::MockQuicConnection(
     QuicConnectionId connection_id,
-    QuicSocketAddress address,
+    QuicSocketAddress initial_peer_address,
     MockQuicConnectionHelper* helper,
     MockAlarmFactory* alarm_factory,
     Perspective perspective,
     const ParsedQuicVersionVector& supported_versions)
-    : QuicConnection(connection_id,
-                     address,
-                     helper,
-                     alarm_factory,
-                     new testing::NiceMock<MockPacketWriter>(),
-                     /* owns_writer= */ true,
-                     perspective,
-                     supported_versions) {
+    : QuicConnection(
+          connection_id,
+          /*initial_self_address=*/QuicSocketAddress(QuicIpAddress::Any4(), 5),
+          initial_peer_address,
+          helper,
+          alarm_factory,
+          new testing::NiceMock<MockPacketWriter>(),
+          /* owns_writer= */ true,
+          perspective,
+          supported_versions) {
   ON_CALL(*this, OnError(_))
       .WillByDefault(
           Invoke(this, &PacketSavingConnection::QuicConnection_OnError));
diff --git a/quic/test_tools/simulator/quic_endpoint.cc b/quic/test_tools/simulator/quic_endpoint.cc
index 0f04427..c02ac7e 100644
--- a/quic/test_tools/simulator/quic_endpoint.cc
+++ b/quic/test_tools/simulator/quic_endpoint.cc
@@ -34,10 +34,9 @@
       wrong_data_received_(false),
       notifier_(nullptr) {
   connection_ = std::make_unique<QuicConnection>(
-      connection_id, GetAddressFromName(peer_name), simulator,
-      simulator->GetAlarmFactory(), &writer_, false, perspective,
+      connection_id, GetAddressFromName(name), GetAddressFromName(peer_name),
+      simulator, simulator->GetAlarmFactory(), &writer_, false, perspective,
       ParsedVersionOfIndex(CurrentSupportedVersions(), 0));
-  connection_->SetSelfAddress(GetAddressFromName(name));
   connection_->set_visitor(this);
   connection_->SetEncrypter(ENCRYPTION_FORWARD_SECURE,
                             std::make_unique<NullEncrypter>(perspective));