gfe-relnote: In QUIC + TLS, change connection's default encryption level when new encryption key is available. Protected by gfe2_reloadable_flag_quic_change_default_encryption_level.
PiperOrigin-RevId: 309831825
Change-Id: Ie4439af16ae22f6e27f873cc3f410caa1c81ca74
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 29dfb93..0f00ff3 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1499,6 +1499,16 @@
connection()->SetEncrypter(level, std::move(encrypter));
if (connection_->version().handshake_protocol == PROTOCOL_TLS1_3 &&
+ (perspective() == Perspective::IS_CLIENT ||
+ GetQuicReloadableFlag(quic_change_default_encryption_level))) {
+ QUIC_DVLOG(1) << ENDPOINT << "Set default encryption level to "
+ << EncryptionLevelToString(level);
+ QUIC_RELOADABLE_FLAG_COUNT(quic_change_default_encryption_level);
+ connection()->SetDefaultEncryptionLevel(level);
+ return;
+ }
+
+ if (connection_->version().handshake_protocol == PROTOCOL_TLS1_3 &&
level == ENCRYPTION_FORWARD_SECURE) {
// Set connection's default encryption level once 1-RTT write key is
// available.