gfe-relnote: When new 0RTT key is available, only allow client to write application data as server application data should be written in forward secure. Protected by gfe2_reloadable_flag_quic_use_handshaker_delegate2 which replaces gfe2_reloadable_flag_quic_use_handshaker_delegate.
PiperOrigin-RevId: 284213052
Change-Id: Ic77723e7f8570fb720af719af98d86e47c76ad34
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index ada8bf4..6381bf2 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1326,11 +1326,13 @@
case ENCRYPTION_INITIAL:
break;
case ENCRYPTION_ZERO_RTT:
- // Retransmit old 0-RTT data (if any) with the new 0-RTT keys, since they
- // can't be decrypted by the peer.
- connection_->RetransmitUnackedPackets(ALL_INITIAL_RETRANSMISSION);
- // Given any streams blocked by encryption a chance to write.
- OnCanWrite();
+ if (perspective() == Perspective::IS_CLIENT) {
+ // Retransmit old 0-RTT data (if any) with the new 0-RTT keys, since
+ // they can't be decrypted by the server.
+ connection_->RetransmitUnackedPackets(ALL_INITIAL_RETRANSMISSION);
+ // Given any streams blocked by encryption a chance to write.
+ OnCanWrite();
+ }
break;
case ENCRYPTION_HANDSHAKE:
break;