Support QUIC Client connection IDs
This CL is almost exclusively plumbing client connection IDs through the stack now that previous CLs handled the behavior changes. It also adds tests for the new behavior at each layer.
gfe-relnote: support client connection IDs, protected by quic_do_not_override_connection_id
PiperOrigin-RevId: 251599233
Change-Id: I7cda028f8aa56e6da451b6d86877fd0f84d93531
diff --git a/quic/test_tools/quic_test_client.cc b/quic/test_tools/quic_test_client.cc
index d4608ed..3e577a3 100644
--- a/quic/test_tools/quic_test_client.cc
+++ b/quic/test_tools/quic_test_client.cc
@@ -210,7 +210,9 @@
QuicWrapUnique(
new RecordingProofVerifier(std::move(proof_verifier)))),
override_server_connection_id_(EmptyQuicConnectionId()),
- server_connection_id_overridden_(false) {}
+ server_connection_id_overridden_(false),
+ override_client_connection_id_(EmptyQuicConnectionId()),
+ client_connection_id_overridden_(false) {}
MockableQuicClient::~MockableQuicClient() {
if (connected()) {
@@ -242,6 +244,17 @@
override_server_connection_id_ = server_connection_id;
}
+QuicConnectionId MockableQuicClient::GetClientConnectionId() {
+ return client_connection_id_overridden_ ? override_client_connection_id_
+ : QuicClient::GetClientConnectionId();
+}
+
+void MockableQuicClient::UseClientConnectionId(
+ QuicConnectionId client_connection_id) {
+ client_connection_id_overridden_ = true;
+ override_client_connection_id_ = client_connection_id;
+}
+
void MockableQuicClient::UseWriter(QuicPacketWriterWrapper* writer) {
mockable_network_helper()->UseWriter(writer);
}
@@ -756,6 +769,12 @@
client_->UseConnectionId(server_connection_id);
}
+void QuicTestClient::UseClientConnectionId(
+ QuicConnectionId client_connection_id) {
+ DCHECK(!connected());
+ client_->UseClientConnectionId(client_connection_id);
+}
+
bool QuicTestClient::MigrateSocket(const QuicIpAddress& new_host) {
return client_->MigrateSocket(new_host);
}