Move handling of STOP_SENDING frame from QuicSession to QuicStream.
Refactor only. not protected.
PiperOrigin-RevId: 321656082
Change-Id: I430fc25ab69436c817d95c5ef6626e69ddb80dda
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc
index 6318ac1..9e695d4 100644
--- a/quic/core/quic_stream.cc
+++ b/quic/core/quic_stream.cc
@@ -494,6 +494,12 @@
}
stream_error_ = static_cast<QuicRstStreamErrorCode>(code);
+
+ session()->SendRstStream(id(),
+ static_cast<quic::QuicRstStreamErrorCode>(code),
+ stream_bytes_written(), /*send_rst_only = */ true);
+ rst_sent_ = true;
+ CloseWriteSide();
return true;
}
@@ -579,7 +585,8 @@
void QuicStream::Reset(QuicRstStreamErrorCode error) {
stream_error_ = error;
- session()->SendRstStream(id(), error, stream_bytes_written());
+ session()->SendRstStream(id(), error, stream_bytes_written(),
+ /*send_rst_only = */ false);
rst_sent_ = true;
if (read_side_closed_ && write_side_closed_ && !IsWaitingForAcks()) {
session()->OnStreamDoneWaitingForAcks(id_);
@@ -824,7 +831,7 @@
// RST_STREAM frame.
QUIC_DLOG(INFO) << ENDPOINT << "Sending RST_STREAM in OnClose: " << id();
session_->SendRstStream(id(), QUIC_RST_ACKNOWLEDGEMENT,
- stream_bytes_written());
+ stream_bytes_written(), /*send_rst_only = */ false);
session_->OnStreamDoneWaitingForAcks(id_);
rst_sent_ = true;
}