Fix quic::GetPacketHeaderSize when QuicVersionHasLongHeaderLengths is false
gfe-relnote: Bugfix in quic::GetPacketHeaderSize protected by gfe2_reloadable_flag_quic_fix_get_packet_header_size
PiperOrigin-RevId: 256043642
Change-Id: I1f943400e15a684b5cb84f2a11cbb294859f669e
diff --git a/quic/core/quic_packets.cc b/quic/core/quic_packets.cc
index 7abf303..c6cef78 100644
--- a/quic/core/quic_packets.cc
+++ b/quic/core/quic_packets.cc
@@ -125,13 +125,24 @@
if (VersionHasIetfInvariantHeader(version)) {
if (include_version) {
// Long header.
- return kPacketHeaderTypeSize + kConnectionIdLengthSize +
- destination_connection_id_length + source_connection_id_length +
- (version > QUIC_VERSION_44 ? packet_number_length
- : PACKET_4BYTE_PACKET_NUMBER) +
- kQuicVersionSize +
- (include_diversification_nonce ? kDiversificationNonceSize : 0) +
- retry_token_length_length + retry_token_length + length_length;
+ size_t size = kPacketHeaderTypeSize + kConnectionIdLengthSize +
+ destination_connection_id_length +
+ source_connection_id_length +
+ (version > QUIC_VERSION_44 ? packet_number_length
+ : PACKET_4BYTE_PACKET_NUMBER) +
+ kQuicVersionSize;
+ if (include_diversification_nonce) {
+ size += kDiversificationNonceSize;
+ }
+ DCHECK(QuicVersionHasLongHeaderLengths(version) ||
+ retry_token_length_length + retry_token_length + length_length ==
+ 0);
+ if (QuicVersionHasLongHeaderLengths(version) ||
+ !GetQuicReloadableFlag(quic_fix_get_packet_header_size)) {
+ QUIC_RELOADABLE_FLAG_COUNT_N(quic_fix_get_packet_header_size, 1, 3);
+ size += retry_token_length_length + retry_token_length + length_length;
+ }
+ return size;
}
// Short header.
return kPacketHeaderTypeSize + destination_connection_id_length +