Neuter CRYPTO data in HANDSHAKE level when discarding handshake keys. Protected by gfe2_reloadable_flag_quic_fix_neuter_handshake_data. This is used to fix a corner case where HANDSHAKE data is marked as lost, but handshake key is discarded before it gets retransmitted. PiperOrigin-RevId: 324676804 Change-Id: I049458e51bdbb8c36892fafb11ec1ba71ba9dece
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc index 5b825ed..6379861 100644 --- a/quic/core/quic_session.cc +++ b/quic/core/quic_session.cc
@@ -1633,6 +1633,11 @@ } void QuicSession::NeuterHandshakeData() { + if (GetQuicReloadableFlag(quic_fix_neuter_handshake_data)) { + QUIC_RELOADABLE_FLAG_COUNT(quic_fix_neuter_handshake_data); + GetMutableCryptoStream()->NeuterStreamDataOfEncryptionLevel( + ENCRYPTION_HANDSHAKE); + } connection()->OnHandshakeComplete(); }