Don't track support for RESET_STREAM_AT in QuicConnection. Instead, rely on state in QuicFramer. Not flagged because this is a trivial change and reliable reset code is not currently exercised. PiperOrigin-RevId: 687047284
diff --git a/quiche/quic/core/quic_connection.cc b/quiche/quic/core/quic_connection.cc index 72bf8c9..274e1b7 100644 --- a/quiche/quic/core/quic_connection.cc +++ b/quiche/quic/core/quic_connection.cc
@@ -580,8 +580,7 @@ } } - reliable_stream_reset_ = config.SupportsReliableStreamReset(); - framer_.set_process_reset_stream_at(reliable_stream_reset_); + framer_.set_process_reset_stream_at(config.SupportsReliableStreamReset()); } void QuicConnection::AddDispatcherSentPackets( @@ -2098,7 +2097,7 @@ if (!UpdatePacketContent(RESET_STREAM_AT_FRAME)) { return false; } - if (!reliable_stream_reset_) { + if (!framer_.process_reset_stream_at()) { CloseConnection(IETF_QUIC_PROTOCOL_VIOLATION, "Received RESET_STREAM_AT while not negotiated.", ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
diff --git a/quiche/quic/core/quic_connection.h b/quiche/quic/core/quic_connection.h index 693873b..e09fa3d 100644 --- a/quiche/quic/core/quic_connection.h +++ b/quiche/quic/core/quic_connection.h
@@ -1481,6 +1481,10 @@ bool ShouldFixTimeouts(const QuicConfig& config) const; + bool reliable_stream_reset_enabled() const { + return framer_.process_reset_stream_at(); + } + protected: // Calls cancel() on all the alarms owned by this connection. void CancelAllAlarms(); @@ -2594,8 +2598,6 @@ // a PTO'd packet from a peer is detected. bool enable_black_hole_avoidance_via_flow_label_ = false; - // If true, the peer has indicated that it supports the RESET_STREAM_AT frame. - bool reliable_stream_reset_ = false; const bool quic_limit_new_streams_per_loop_2_ = GetQuicReloadableFlag(quic_limit_new_streams_per_loop_2);
diff --git a/quiche/quic/core/quic_framer.h b/quiche/quic/core/quic_framer.h index 60736ed..db92e0a 100644 --- a/quiche/quic/core/quic_framer.h +++ b/quiche/quic/core/quic_framer.h
@@ -328,6 +328,8 @@ receive_timestamps_exponent_ = exponent; } + bool process_reset_stream_at() const { return process_reset_stream_at_; } + // Allows enabling RESET_STREAM_AT frame processing. void set_process_reset_stream_at(bool process_reset_stream_at) { process_reset_stream_at_ = process_reset_stream_at;