Index: net/quic/core/quic_stream.cc |
diff --git a/net/quic/core/quic_stream.cc b/net/quic/core/quic_stream.cc |
index d402b4e5c537580fe0899187670acddd539919d4..733a805084ff331da83b6c6c8944af3c9ab68381 100644 |
--- a/net/quic/core/quic_stream.cc |
+++ b/net/quic/core/quic_stream.cc |
@@ -73,7 +73,8 @@ QuicStream::QuicStream(QuicStreamId id, QuicSession* session) |
session_->flow_controller()), |
connection_flow_controller_(session_->flow_controller()), |
stream_contributes_to_connection_flow_control_(true), |
- busy_counter_(0) { |
+ busy_counter_(0), |
+ add_random_padding_after_fin_(false) { |
SetFromConfig(); |
} |
@@ -356,7 +357,11 @@ QuicConsumedData QuicStream::WritevDataInner( |
QuicStreamOffset offset, |
bool fin, |
QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener) { |
- return session()->WritevData(this, id(), iov, offset, fin, |
+ StreamSendingState state = fin ? FIN : NO_FIN; |
+ if (fin && add_random_padding_after_fin_) { |
+ state = FIN_AND_PADDING; |
+ } |
+ return session()->WritevData(this, id(), iov, offset, state, |
std::move(ack_listener)); |
} |
@@ -483,4 +488,8 @@ void QuicStream::UpdateSendWindowOffset(QuicStreamOffset new_window) { |
} |
} |
+void QuicStream::AddRandomPaddingAfterFin() { |
+ add_random_padding_after_fin_ = true; |
+} |
+ |
} // namespace net |