Don't create NullEncrypter/Decrypter in QuicFramer
gfe-relnote: Changes when/where ENCRYPTION_INITIAL crypters are created in QUIC, protected by reloadable flag quic_framer_doesnt_create_initial_encrypter
PiperOrigin-RevId: 270083544
Change-Id: I27db7b0f8fd094215e7385e54456c2eb807610ab
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 010d478..e33dc00 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -424,14 +424,22 @@
expected_server_connection_id_length),
expected_client_connection_id_length_(0),
supports_multiple_packet_number_spaces_(false),
+ framer_doesnt_create_initial_encrypter_(
+ GetQuicReloadableFlag(quic_framer_doesnt_create_initial_encrypter)),
last_written_packet_number_length_(0),
peer_ack_delay_exponent_(kDefaultAckDelayExponent),
local_ack_delay_exponent_(kDefaultAckDelayExponent),
current_received_frame_type_(0) {
DCHECK(!supported_versions.empty());
version_ = supported_versions_[0];
- decrypter_[ENCRYPTION_INITIAL] = std::make_unique<NullDecrypter>(perspective);
- encrypter_[ENCRYPTION_INITIAL] = std::make_unique<NullEncrypter>(perspective);
+ if (!framer_doesnt_create_initial_encrypter_) {
+ decrypter_[ENCRYPTION_INITIAL] =
+ std::make_unique<NullDecrypter>(perspective);
+ encrypter_[ENCRYPTION_INITIAL] =
+ std::make_unique<NullEncrypter>(perspective);
+ } else {
+ QUIC_RELOADABLE_FLAG_COUNT(quic_framer_doesnt_create_initial_encrypter);
+ }
}
QuicFramer::~QuicFramer() {}