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.h b/quic/test_tools/quic_test_client.h
index a4ee0d5..5f1b6fa 100644
--- a/quic/test_tools/quic_test_client.h
+++ b/quic/test_tools/quic_test_client.h
@@ -56,6 +56,8 @@
QuicConnectionId GenerateNewConnectionId() override;
void UseConnectionId(QuicConnectionId server_connection_id);
+ QuicConnectionId GetClientConnectionId() override;
+ void UseClientConnectionId(QuicConnectionId client_connection_id);
void UseWriter(QuicPacketWriterWrapper* writer);
void set_peer_address(const QuicSocketAddress& address);
@@ -72,6 +74,9 @@
// Server connection ID to use, if server_connection_id_overridden_
QuicConnectionId override_server_connection_id_;
bool server_connection_id_overridden_;
+ // Client connection ID to use, if client_connection_id_overridden_
+ QuicConnectionId override_client_connection_id_;
+ bool client_connection_id_overridden_;
CachedNetworkParameters cached_network_paramaters_;
};
@@ -222,6 +227,9 @@
// Configures client_ to use a specific server connection ID instead of a
// random one.
void UseConnectionId(QuicConnectionId server_connection_id);
+ // Configures client_ to use a specific client connection ID instead of an
+ // empty one.
+ void UseClientConnectionId(QuicConnectionId client_connection_id);
// Returns nullptr if the maximum number of streams have already been created.
QuicSpdyClientStream* GetOrCreateStream();