Internal QUICHE change
PiperOrigin-RevId: 321428930
Change-Id: I43a8489065b3207e861fb6f3bac5afbeaf51f994
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 7cf9f51..e98359c 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -1007,9 +1007,9 @@
server_connection_id = MaybeReplaceServerConnectionId(server_connection_id,
packet_list.version);
std::string alpn = SelectAlpn(packet_list.alpns);
- std::unique_ptr<QuicSession> session =
- CreateQuicSession(server_connection_id, packets.front().peer_address,
- alpn, packet_list.version);
+ std::unique_ptr<QuicSession> session = CreateQuicSession(
+ server_connection_id, packets.front().self_address,
+ packets.front().peer_address, alpn, packet_list.version);
if (original_connection_id != server_connection_id) {
session->connection()->SetOriginalDestinationConnectionId(
original_connection_id);
@@ -1100,14 +1100,14 @@
original_connection_id, packet_info->version);
// Creates a new session and process all buffered packets for this connection.
std::string alpn = SelectAlpn(alpns);
- std::unique_ptr<QuicSession> session =
- CreateQuicSession(packet_info->destination_connection_id,
- packet_info->peer_address, alpn, packet_info->version);
+ std::unique_ptr<QuicSession> session = CreateQuicSession(
+ packet_info->destination_connection_id, packet_info->self_address,
+ packet_info->peer_address, alpn, packet_info->version);
if (QUIC_PREDICT_FALSE(session == nullptr)) {
QUIC_BUG << "CreateQuicSession returned nullptr for "
<< packet_info->destination_connection_id << " from "
- << packet_info->peer_address << " ALPN \"" << alpn << "\" version "
- << packet_info->version;
+ << packet_info->peer_address << " to " << packet_info->self_address
+ << " ALPN \"" << alpn << "\" version " << packet_info->version;
return;
}
if (original_connection_id != packet_info->destination_connection_id) {
diff --git a/quic/core/quic_dispatcher.h b/quic/core/quic_dispatcher.h
index f0c35ea..e4c61e5 100644
--- a/quic/core/quic_dispatcher.h
+++ b/quic/core/quic_dispatcher.h
@@ -138,6 +138,7 @@
protected:
virtual std::unique_ptr<QuicSession> CreateQuicSession(
QuicConnectionId server_connection_id,
+ const QuicSocketAddress& self_address,
const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece alpn,
const ParsedQuicVersion& version) = 0;
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index 1d84b06..bd9bb7a 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -133,6 +133,7 @@
MOCK_METHOD(std::unique_ptr<QuicSession>,
CreateQuicSession,
(QuicConnectionId connection_id,
+ const QuicSocketAddress& self_address,
const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece alpn,
const quic::ParsedQuicVersion& version),
@@ -441,7 +442,7 @@
QuicConnectionId connection_id = TestConnectionId(++connection_id_);
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(connection_id, client_address,
+ CreateQuicSession(connection_id, _, client_address,
Eq(ExpectedAlpnForVersion(version)), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, connection_id, client_address,
@@ -463,7 +464,7 @@
QuicConnectionId connection_id = TestConnectionId(++connection_id_);
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(connection_id, client_address, _, _))
+ CreateQuicSession(connection_id, _, client_address, _, _))
.Times(0);
ProcessFirstFlight(version, client_address, connection_id);
}
@@ -506,7 +507,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(1), client_address,
+ CreateQuicSession(TestConnectionId(1), _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
@@ -557,7 +558,7 @@
// Processing the second packet should create the new session.
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(server_connection_id, client_address,
+ CreateQuicSession(server_connection_id, _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, server_connection_id, client_address,
@@ -626,7 +627,7 @@
// Processing the packet should create a new session.
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(server_connection_id, client_address,
+ CreateQuicSession(server_connection_id, _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, server_connection_id, client_address,
@@ -651,7 +652,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(1), client_address,
+ CreateQuicSession(TestConnectionId(1), _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
@@ -668,7 +669,7 @@
ProcessFirstFlight(client_address, TestConnectionId(1));
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(2), client_address,
+ CreateQuicSession(TestConnectionId(2), _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(2), client_address,
@@ -698,7 +699,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(1), client_address,
+ CreateQuicSession(TestConnectionId(1), _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
@@ -726,7 +727,7 @@
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(
*time_wait_list_manager_,
SendVersionNegotiationPacket(TestConnectionId(1), _, _, _, _, _, _, _))
@@ -741,7 +742,7 @@
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(connection_id, _, _, _, _, _, _, _))
.Times(1);
@@ -754,7 +755,7 @@
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(
TestConnectionId(1), TestConnectionId(2), _, _, _, _, _, _))
@@ -767,7 +768,7 @@
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
.Times(0);
@@ -791,7 +792,7 @@
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
.Times(1);
@@ -810,7 +811,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(_, client_address, Eq(ExpectedAlpn()), _))
+ CreateQuicSession(_, _, client_address, Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
&mock_helper_, &mock_alarm_factory_, &crypto_config_,
@@ -838,7 +839,7 @@
// Create a new session.
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
QuicConnectionId connection_id = TestConnectionId(1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(connection_id, client_address,
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(connection_id, _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, connection_id, client_address,
@@ -879,7 +880,7 @@
QuicConnectionId connection_id = TestConnectionId(1);
// Dispatcher forwards all packets for this connection_id to the time wait
// list manager.
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
ProcessPacket(_, _, connection_id, _, _))
.Times(0);
@@ -900,7 +901,7 @@
QuicReceivedPacket packet(short_packet, 22, QuicTime::Zero());
char valid_size_packet[23] = {0x70, 0xa7, 0x02, 0x6c};
QuicReceivedPacket packet2(valid_size_packet, 23, QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _, _))
.Times(0);
@@ -927,7 +928,7 @@
QuicUtils::CreateReplacementConnectionId(bad_connection_id);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(fixed_connection_id, client_address,
+ CreateQuicSession(fixed_connection_id, _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, fixed_connection_id, client_address,
@@ -964,7 +965,7 @@
// validation is still enabled.
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(fixed_connection_id, client_address,
+ CreateQuicSession(fixed_connection_id, _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, fixed_connection_id, client_address,
@@ -995,7 +996,7 @@
QuicUtils::CreateReplacementConnectionId(bad_connection_id);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(1), client_address,
+ CreateQuicSession(TestConnectionId(1), _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
@@ -1012,7 +1013,7 @@
ProcessFirstFlight(client_address, TestConnectionId(1));
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(fixed_connection_id, client_address,
+ CreateQuicSession(fixed_connection_id, _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, fixed_connection_id, client_address,
@@ -1045,7 +1046,7 @@
// dispatcher_ should drop this packet.
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(1), client_address, _, _))
+ CreateQuicSession(TestConnectionId(1), _, client_address, _, _))
.Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _, _))
@@ -1064,7 +1065,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
// dispatcher_ should drop this packet.
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, client_address, _, _))
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, client_address, _, _))
.Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _, _))
@@ -1095,7 +1096,7 @@
0xC0, 'Q', '0', '4', '9', /*connection ID length byte*/ 0x50};
QuicReceivedPacket received_packet49(
packet49, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
.Times(1);
@@ -1108,7 +1109,7 @@
0xC0, 'Q', '0', '4', '8', /*connection ID length byte*/ 0x50};
QuicReceivedPacket received_packet48(
packet48, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
.Times(1);
@@ -1121,7 +1122,7 @@
0xC0, 'Q', '0', '4', '7', /*connection ID length byte*/ 0x50};
QuicReceivedPacket received_packet47(
packet47, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
.Times(1);
@@ -1134,7 +1135,7 @@
0xC0, 'Q', '0', '4', '5', /*connection ID length byte*/ 0x50};
QuicReceivedPacket received_packet45(
packet45, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
.Times(1);
@@ -1147,7 +1148,7 @@
0xFF, 'Q', '0', '4', '4', /*connection ID length byte*/ 0x50};
QuicReceivedPacket received_packet44(
packet44, kMinPacketSizeForVersionNegotiation, QuicTime::Zero());
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_,
SendVersionNegotiationPacket(_, _, _, _, _, _, _, _))
.Times(1);
@@ -1180,7 +1181,7 @@
SendVersionNegotiationPacket(server_connection_id, client_connection_id,
ietf_quic, use_length_prefix, _, _, _, _))
.Times(1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
dispatcher_->ProcessPacket(server_address_, client_address, *received_packet);
}
@@ -1209,7 +1210,7 @@
SendVersionNegotiationPacket(server_connection_id, client_connection_id,
ietf_quic, use_length_prefix, _, _, _, _))
.Times(1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
dispatcher_->ProcessPacket(server_address_, client_address, *received_packet);
}
@@ -1260,7 +1261,7 @@
QuicEncryptedPacket encrypted(packet, sizeof(packet), false);
std::unique_ptr<QuicReceivedPacket> received_packet(
ConstructReceivedPacket(encrypted, mock_helper_.GetClock()->Now()));
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
dispatcher_->ProcessPacket(server_address_, client_address, *received_packet);
@@ -1304,7 +1305,7 @@
QuicEncryptedPacket encrypted(packet, sizeof(packet), false);
std::unique_ptr<QuicReceivedPacket> received_packet(
ConstructReceivedPacket(encrypted, mock_helper_.GetClock()->Now()));
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
dispatcher_->ProcessPacket(server_address_, client_address, *received_packet);
@@ -1356,7 +1357,7 @@
sizeof(packet), false);
std::unique_ptr<QuicReceivedPacket> received_packet(
ConstructReceivedPacket(encrypted, mock_helper_.GetClock()->Now()));
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
dispatcher_->ProcessPacket(server_address_, client_address, *received_packet);
@@ -1386,7 +1387,7 @@
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, SendPacket(_, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _, _))
.Times(0);
@@ -1447,7 +1448,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(1), client_address,
+ CreateQuicSession(TestConnectionId(1), _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
@@ -1465,7 +1466,7 @@
// No more new connections afterwards.
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(2), client_address,
+ CreateQuicSession(TestConnectionId(2), _, client_address,
Eq(ExpectedAlpn()), _))
.Times(0u);
ProcessFirstFlight(client_address, TestConnectionId(2));
@@ -1486,7 +1487,7 @@
// No more new connections afterwards.
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(2), client_address,
+ CreateQuicSession(TestConnectionId(2), _, client_address,
Eq(ExpectedAlpn()), _))
.Times(0u);
ProcessFirstFlight(client_address, TestConnectionId(2));
@@ -1495,7 +1496,7 @@
EXPECT_TRUE(dispatcher_->accept_new_connections());
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(1), client_address,
+ CreateQuicSession(TestConnectionId(1), _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
@@ -1537,7 +1538,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
QuicConnectionId connection_id = TestConnectionId(1);
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _)).Times(0);
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _, _))
.Times(0);
@@ -1578,7 +1579,7 @@
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(_, client_address, Eq(ExpectedAlpn()), _))
+ CreateQuicSession(_, _, client_address, Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(1), client_address,
&helper_, &alarm_factory_, &crypto_config_,
@@ -1594,7 +1595,7 @@
ProcessFirstFlight(client_address, TestConnectionId(1));
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(_, client_address, Eq(ExpectedAlpn()), _))
+ CreateQuicSession(_, _, client_address, Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(2), client_address,
&helper_, &alarm_factory_, &crypto_config_,
@@ -1920,8 +1921,8 @@
// When CHLO arrives, a new session should be created, and all packets
// buffered should be delivered to the session.
- EXPECT_CALL(*dispatcher_,
- CreateQuicSession(conn_id, client_addr_, Eq(ExpectedAlpn()), _))
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(conn_id, _, client_addr_,
+ Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, conn_id, client_addr_, &mock_helper_,
&mock_alarm_factory_, &crypto_config_,
@@ -1955,8 +1956,8 @@
data_connection_map_[conn_id].pop_back();
// When CHLO arrives, a new session should be created, and all packets
// buffered should be delivered to the session.
- EXPECT_CALL(*dispatcher_,
- CreateQuicSession(conn_id, client_addr_, Eq(ExpectedAlpn()), _))
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(conn_id, _, client_addr_,
+ Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, conn_id, client_addr_, &mock_helper_,
&mock_alarm_factory_, &crypto_config_,
@@ -2007,7 +2008,7 @@
ShouldCreateOrBufferPacketForConnection(
ReceivedPacketInfoConnectionIdEquals(conn_id)));
}
- EXPECT_CALL(*dispatcher_, CreateQuicSession(conn_id, client_address,
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(conn_id, _, client_address,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, conn_id, client_address, &mock_helper_,
@@ -2035,8 +2036,8 @@
QuicConnectionId conn_id = TestConnectionId(1);
EXPECT_CALL(*dispatcher_, ShouldCreateOrBufferPacketForConnection(
ReceivedPacketInfoConnectionIdEquals(conn_id)));
- EXPECT_CALL(*dispatcher_,
- CreateQuicSession(conn_id, client_addr_, Eq(ExpectedAlpn()), _))
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(conn_id, _, client_addr_,
+ Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, conn_id, client_addr_, &mock_helper_,
&mock_alarm_factory_, &crypto_config_,
@@ -2055,8 +2056,8 @@
// When CHLO arrives, a new session should be created, and all packets
// buffered should be delivered to the session.
- EXPECT_CALL(*dispatcher_,
- CreateQuicSession(conn_id, client_addr_, Eq(ExpectedAlpn()), _))
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(conn_id, _, client_addr_,
+ Eq(ExpectedAlpn()), _))
.Times(1) // Only triggered by 1st CHLO.
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, conn_id, client_addr_, &mock_helper_,
@@ -2125,7 +2126,7 @@
ReceivedPacketInfoConnectionIdEquals(TestConnectionId(conn_id))));
if (conn_id <= kMaxNumSessionsToCreate) {
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(conn_id), client_addr_,
+ CreateQuicSession(TestConnectionId(conn_id), _, client_addr_,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(conn_id),
@@ -2160,7 +2161,7 @@
conn_id <= kMaxNumSessionsToCreate + kDefaultMaxConnectionsInStore;
++conn_id) {
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(conn_id), client_addr_,
+ CreateQuicSession(TestConnectionId(conn_id), _, client_addr_,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(conn_id), client_addr_,
@@ -2176,7 +2177,7 @@
})));
}
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(kNumCHLOs), client_addr_,
+ CreateQuicSession(TestConnectionId(kNumCHLOs), _, client_addr_,
Eq(ExpectedAlpn()), _))
.Times(0);
@@ -2196,7 +2197,7 @@
// Last CHLO will be buffered. Others will create connection right away.
if (conn_id <= kMaxNumSessionsToCreate) {
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(conn_id), client_addr_,
+ CreateQuicSession(TestConnectionId(conn_id), _, client_addr_,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(conn_id),
@@ -2223,7 +2224,7 @@
size_t packets_buffered = 2;
// Reset counter and process buffered CHLO.
- EXPECT_CALL(*dispatcher_, CreateQuicSession(last_connection, client_addr_,
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(last_connection, _, client_addr_,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, last_connection, client_addr_,
@@ -2249,7 +2250,7 @@
// Last CHLO will be buffered. Others will create connection right away.
if (conn_id <= kMaxNumSessionsToCreate) {
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(conn_id), client_addr_,
+ CreateQuicSession(TestConnectionId(conn_id), _, client_addr_,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(conn_id),
@@ -2277,8 +2278,9 @@
}
// Reset counter and process buffered CHLO.
- EXPECT_CALL(*dispatcher_, CreateQuicSession(last_connection_id, client_addr_,
- Eq(ExpectedAlpn()), _))
+ EXPECT_CALL(*dispatcher_,
+ CreateQuicSession(last_connection_id, _, client_addr_,
+ Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, last_connection_id, client_addr_,
&mock_helper_, &mock_alarm_factory_, &crypto_config_,
@@ -2313,7 +2315,7 @@
++conn_id) {
if (conn_id <= kMaxNumSessionsToCreate + 1) {
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(conn_id), client_addr_,
+ CreateQuicSession(TestConnectionId(conn_id), _, client_addr_,
Eq(ExpectedAlpn()), _))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(conn_id),
@@ -2355,7 +2357,7 @@
if (conn_id <= kMaxNumSessionsToCreate) {
EXPECT_CALL(
*dispatcher_,
- CreateQuicSession(TestConnectionId(conn_id), client_addr_,
+ CreateQuicSession(TestConnectionId(conn_id), _, client_addr_,
Eq(ExpectedAlpnForVersion(version)), version))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(conn_id),
@@ -2381,7 +2383,7 @@
ParsedQuicVersion version =
supported_versions[(conn_id - 1) % supported_versions.size()];
EXPECT_CALL(*dispatcher_,
- CreateQuicSession(TestConnectionId(conn_id), client_addr_,
+ CreateQuicSession(TestConnectionId(conn_id), _, client_addr_,
Eq(ExpectedAlpnForVersion(version)), version))
.WillOnce(Return(ByMove(CreateSession(
dispatcher_.get(), config_, TestConnectionId(conn_id), client_addr_,
diff --git a/quic/masque/masque_dispatcher.cc b/quic/masque/masque_dispatcher.cc
index 9856fb4..ff9d2cf 100644
--- a/quic/masque/masque_dispatcher.cc
+++ b/quic/masque/masque_dispatcher.cc
@@ -28,12 +28,13 @@
std::unique_ptr<QuicSession> MasqueDispatcher::CreateQuicSession(
QuicConnectionId connection_id,
- const QuicSocketAddress& client_address,
+ const QuicSocketAddress& /*self_address*/,
+ const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece /*alpn*/,
const ParsedQuicVersion& version) {
// The MasqueServerSession takes ownership of |connection| below.
QuicConnection* connection = new QuicConnection(
- connection_id, client_address, helper(), alarm_factory(), writer(),
+ connection_id, peer_address, helper(), alarm_factory(), writer(),
/*owns_writer=*/false, Perspective::IS_SERVER,
ParsedQuicVersionVector{version});
diff --git a/quic/masque/masque_dispatcher.h b/quic/masque/masque_dispatcher.h
index 6901a86..e663b1c 100644
--- a/quic/masque/masque_dispatcher.h
+++ b/quic/masque/masque_dispatcher.h
@@ -34,7 +34,8 @@
// From QuicSimpleDispatcher.
std::unique_ptr<QuicSession> CreateQuicSession(
QuicConnectionId connection_id,
- const QuicSocketAddress& client_address,
+ const QuicSocketAddress& self_address,
+ const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece alpn,
const ParsedQuicVersion& version) override;
diff --git a/quic/qbone/qbone_client_test.cc b/quic/qbone/qbone_client_test.cc
index 91be62a..cfe6c46 100644
--- a/quic/qbone/qbone_client_test.cc
+++ b/quic/qbone/qbone_client_test.cc
@@ -123,14 +123,15 @@
std::unique_ptr<QuicSession> CreateQuicSession(
QuicConnectionId id,
- const QuicSocketAddress& client,
+ const QuicSocketAddress& /*self_address*/,
+ const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece alpn,
const quic::ParsedQuicVersion& version) override {
CHECK_EQ(alpn, "qbone");
- QuicConnection* connection =
- new QuicConnection(id, client, helper(), alarm_factory(), writer(),
- /* owns_writer= */ false, Perspective::IS_SERVER,
- ParsedQuicVersionVector{version});
+ QuicConnection* connection = new QuicConnection(
+ id, peer_address, helper(), alarm_factory(), writer(),
+ /* owns_writer= */ false, Perspective::IS_SERVER,
+ ParsedQuicVersionVector{version});
// The connection owning wrapper owns the connection created.
auto session = std::make_unique<ConnectionOwningQboneServerSession>(
GetSupportedVersions(), connection, this, config(), crypto_config(),
diff --git a/quic/test_tools/quic_test_server.cc b/quic/test_tools/quic_test_server.cc
index 1b6452e..85a86b7 100644
--- a/quic/test_tools/quic_test_server.cc
+++ b/quic/test_tools/quic_test_server.cc
@@ -95,18 +95,20 @@
std::unique_ptr<QuicSession> CreateQuicSession(
QuicConnectionId id,
- const QuicSocketAddress& client,
+ const QuicSocketAddress& self_address,
+ const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece alpn,
const ParsedQuicVersion& version) override {
QuicReaderMutexLock lock(&factory_lock_);
if (session_factory_ == nullptr && stream_factory_ == nullptr &&
crypto_stream_factory_ == nullptr) {
- return QuicSimpleDispatcher::CreateQuicSession(id, client, alpn, version);
+ return QuicSimpleDispatcher::CreateQuicSession(
+ id, self_address, peer_address, alpn, version);
}
- QuicConnection* connection =
- new QuicConnection(id, client, helper(), alarm_factory(), writer(),
- /* owns_writer= */ false, Perspective::IS_SERVER,
- ParsedQuicVersionVector{version});
+ QuicConnection* connection = new QuicConnection(
+ id, peer_address, helper(), alarm_factory(), writer(),
+ /* owns_writer= */ false, Perspective::IS_SERVER,
+ ParsedQuicVersionVector{version});
std::unique_ptr<QuicServerSessionBase> session;
if (stream_factory_ != nullptr || crypto_stream_factory_ != nullptr) {
diff --git a/quic/tools/quic_simple_dispatcher.cc b/quic/tools/quic_simple_dispatcher.cc
index e361511..eb06dd5 100644
--- a/quic/tools/quic_simple_dispatcher.cc
+++ b/quic/tools/quic_simple_dispatcher.cc
@@ -50,12 +50,13 @@
std::unique_ptr<QuicSession> QuicSimpleDispatcher::CreateQuicSession(
QuicConnectionId connection_id,
- const QuicSocketAddress& client_address,
+ const QuicSocketAddress& /*self_address*/,
+ const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece /*alpn*/,
const ParsedQuicVersion& version) {
// The QuicServerSessionBase takes ownership of |connection| below.
QuicConnection* connection = new QuicConnection(
- connection_id, client_address, helper(), alarm_factory(), writer(),
+ connection_id, peer_address, helper(), alarm_factory(), writer(),
/* owns_writer= */ false, Perspective::IS_SERVER,
ParsedQuicVersionVector{version});
diff --git a/quic/tools/quic_simple_dispatcher.h b/quic/tools/quic_simple_dispatcher.h
index dbb5fdf..c01359d 100644
--- a/quic/tools/quic_simple_dispatcher.h
+++ b/quic/tools/quic_simple_dispatcher.h
@@ -33,7 +33,8 @@
protected:
std::unique_ptr<QuicSession> CreateQuicSession(
QuicConnectionId connection_id,
- const QuicSocketAddress& client_address,
+ const QuicSocketAddress& self_address,
+ const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece alpn,
const ParsedQuicVersion& version) override;
diff --git a/quic/tools/quic_transport_simple_server_dispatcher.cc b/quic/tools/quic_transport_simple_server_dispatcher.cc
index 55a0674..d445b54 100644
--- a/quic/tools/quic_transport_simple_server_dispatcher.cc
+++ b/quic/tools/quic_transport_simple_server_dispatcher.cc
@@ -36,6 +36,7 @@
std::unique_ptr<QuicSession>
QuicTransportSimpleServerDispatcher::CreateQuicSession(
QuicConnectionId server_connection_id,
+ const QuicSocketAddress& /*self_address*/,
const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece /*alpn*/,
const ParsedQuicVersion& version) {
diff --git a/quic/tools/quic_transport_simple_server_dispatcher.h b/quic/tools/quic_transport_simple_server_dispatcher.h
index cc3f76e..da27585 100644
--- a/quic/tools/quic_transport_simple_server_dispatcher.h
+++ b/quic/tools/quic_transport_simple_server_dispatcher.h
@@ -29,6 +29,7 @@
protected:
std::unique_ptr<QuicSession> CreateQuicSession(
QuicConnectionId server_connection_id,
+ const QuicSocketAddress& self_address,
const QuicSocketAddress& peer_address,
quiche::QuicheStringPiece alpn,
const ParsedQuicVersion& version) override;