Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(584)

Unified Diff: net/quic/reliable_quic_stream.cc

Issue 16256017: Land Recent QUIC changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix for Android DEBUG builds with DEATH_TEST Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/quic/reliable_quic_stream.cc
diff --git a/net/quic/reliable_quic_stream.cc b/net/quic/reliable_quic_stream.cc
index 0ed990e311de4ad3a04439b0fd8b990a36fcc663..144c9080ac0be7b964a62ff19e4c228a07f3c52b 100644
--- a/net/quic/reliable_quic_stream.cc
+++ b/net/quic/reliable_quic_stream.cc
@@ -95,7 +95,12 @@ void ReliableQuicStream::TerminateFromPeer(bool half_close) {
void ReliableQuicStream::Close(QuicRstStreamErrorCode error) {
stream_error_ = error;
- session()->SendRstStream(id(), error);
+ if (error != QUIC_STREAM_NO_ERROR) {
+ // Sending a RstStream results in calling CloseStream.
+ session()->SendRstStream(id(), error);
+ } else {
+ session_->CloseStream(id());
+ }
}
int ReliableQuicStream::Readv(const struct iovec* iov, size_t iov_len) {
@@ -155,6 +160,7 @@ QuicSpdyCompressor* ReliableQuicStream::compressor() {
}
QuicConsumedData ReliableQuicStream::WriteData(StringPiece data, bool fin) {
+ DCHECK(data.size() > 0 || fin);
return WriteOrBuffer(data, fin);
}
@@ -212,6 +218,8 @@ QuicConsumedData ReliableQuicStream::WriteDataInternal(
if (fin && consumed_data.fin_consumed) {
fin_sent_ = true;
CloseWriteSide();
+ } else if (fin && !consumed_data.fin_consumed) {
+ session_->MarkWriteBlocked(id());
}
} else {
session_->MarkWriteBlocked(id());

Powered by Google App Engine
This is Rietveld 408576698