Index: net/quic/chromium/quic_http_stream.cc |
diff --git a/net/quic/chromium/quic_http_stream.cc b/net/quic/chromium/quic_http_stream.cc |
index 9ec364ce0833da527ac00ce86cea55bbf0ba219a..388bce47efb27026ec4f9ed3fadd9c3b433d12ef 100644 |
--- a/net/quic/chromium/quic_http_stream.cc |
+++ b/net/quic/chromium/quic_http_stream.cc |
@@ -310,14 +310,6 @@ int QuicHttpStream::SendRequest(const HttpRequestHeaders& request_headers, |
return rv > 0 ? OK : rv; |
} |
-UploadProgress QuicHttpStream::GetUploadProgress() const { |
- if (!request_body_stream_) |
- return UploadProgress(); |
- |
- return UploadProgress(request_body_stream_->position(), |
- request_body_stream_->size()); |
-} |
- |
int QuicHttpStream::ReadResponseHeaders(const CompletionCallback& callback) { |
CHECK(callback_.is_null()); |
CHECK(!callback.is_null()); |
@@ -343,6 +335,11 @@ int QuicHttpStream::ReadResponseBody(IOBuffer* buf, |
CHECK(!user_buffer_.get()); |
CHECK_EQ(0, user_buffer_len_); |
+ // Invalidate HttpRequestInfo pointer. This is to allow the stream to be |
+ // shared across multiple transactions which might require this |
+ // stream to outlive the request_info_'s owner. |
+ if (request_info_) |
+ ResetRequestInfo(); |
if (!stream_) { |
// If the stream is already closed, there is no body to read. |
return response_status_; |
@@ -709,7 +706,7 @@ int QuicHttpStream::DoSendHeadersComplete(int rv) { |
if (rv < 0) |
return rv; |
- // If the stream is already closed, don't read the request the body. |
+ // If the stream is already closed, don't read the request body. |
if (!stream_) |
return response_status_; |
@@ -842,4 +839,13 @@ void QuicHttpStream::ResetStream() { |
request_body_stream_->Reset(); |
} |
+void QuicHttpStream::ResetRequestInfo() { |
+ // Only allowed when Read state machine starts. It is safe to reset it at |
+ // this point since request_info_->upload_data_stream is also not needed |
+ // anymore. |
+ DCHECK_EQ(STATE_OPEN, next_state_); |
Randy Smith (Not in Mondays)
2016/09/09 17:28:24
nit, suggestion: Separate routine needed? (Applie
shivanisha
2016/09/13 19:58:34
done.
|
+ |
+ request_info_ = nullptr; |
+} |
+ |
} // namespace net |