Internal change
PiperOrigin-RevId: 495134833
diff --git a/quiche/quic/core/quic_session.cc b/quiche/quic/core/quic_session.cc
index e71f67f..3355080 100644
--- a/quiche/quic/core/quic_session.cc
+++ b/quiche/quic/core/quic_session.cc
@@ -783,18 +783,23 @@
connection_->ProcessUdpPacket(self_address, peer_address, packet);
}
+std::string QuicSession::on_closed_frame_string() const {
+ std::stringstream ss;
+ ss << on_closed_frame_;
+ if (source_.has_value()) {
+ ss << " " << ConnectionCloseSourceToString(source_.value());
+ }
+ return ss.str();
+}
+
QuicConsumedData QuicSession::WritevData(QuicStreamId id, size_t write_length,
QuicStreamOffset offset,
StreamSendingState state,
TransmissionType type,
EncryptionLevel level) {
QUIC_BUG_IF(session writevdata when disconnected, !connection()->connected())
- << ENDPOINT
- << absl::StrCat("Try to write stream data when connection is closed: ",
- QuicFrameToString(QuicFrame(&on_closed_frame_)), " ",
- source_.has_value()
- ? ConnectionCloseSourceToString(source_.value())
- : "");
+ << ENDPOINT << "Try to write stream data when connection is closed: "
+ << on_closed_frame_string();
if (!IsEncryptionEstablished() &&
!QuicUtils::IsCryptoStreamId(transport_version(), id)) {
// Do not let streams write without encryption. The calling stream will end
@@ -871,11 +876,8 @@
QUIC_BUG_IF(quic_bug_12435_11, !connection()->connected())
<< ENDPOINT
<< absl::StrCat("Try to write control frame: ", QuicFrameToString(frame),
- " when connection is closed: ",
- QuicFrameToString(QuicFrame(&on_closed_frame_)), " ",
- source_.has_value()
- ? ConnectionCloseSourceToString(source_.value())
- : "");
+ " when connection is closed: ")
+ << on_closed_frame_string();
if (!IsEncryptionEstablished()) {
// Suppress the write before encryption gets established.
return false;
diff --git a/quiche/quic/core/quic_session.h b/quiche/quic/core/quic_session.h
index 2117c8b..ecdabf9 100644
--- a/quiche/quic/core/quic_session.h
+++ b/quiche/quic/core/quic_session.h
@@ -648,6 +648,8 @@
using ZombieStreamMap =
absl::flat_hash_map<QuicStreamId, std::unique_ptr<QuicStream>>;
+ std::string on_closed_frame_string() const;
+
// Creates a new stream to handle a peer-initiated stream.
// Caller does not own the returned stream.
// Returns nullptr and does error handling if the stream can not be created.