| Index: net/http/http_response_body_drainer.cc
|
| diff --git a/net/http/http_response_body_drainer.cc b/net/http/http_response_body_drainer.cc
|
| index fdcec3115d3fc515723f977c54bf68cfd9b4f8f8..b484e04b18e093f0b9ab21c4bfaccd3967caf635 100644
|
| --- a/net/http/http_response_body_drainer.cc
|
| +++ b/net/http/http_response_body_drainer.cc
|
| @@ -9,15 +9,19 @@
|
| #include "net/base/io_buffer.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/http/http_network_session.h"
|
| +#include "net/http/http_response_info.h"
|
| #include "net/http/http_stream.h"
|
|
|
| namespace net {
|
|
|
| -HttpResponseBodyDrainer::HttpResponseBodyDrainer(HttpStream* stream)
|
| - : stream_(stream),
|
| +HttpResponseBodyDrainer::HttpResponseBodyDrainer(
|
| + HttpStream* stream,
|
| + scoped_ptr<HttpResponseInfo> response_info)
|
| + : response_info_(std::move(response_info)),
|
| + stream_(stream),
|
| next_state_(STATE_NONE),
|
| total_read_(0),
|
| - session_(NULL) {}
|
| + session_(nullptr) {}
|
|
|
| HttpResponseBodyDrainer::~HttpResponseBodyDrainer() {}
|
|
|
| @@ -113,7 +117,7 @@ void HttpResponseBodyDrainer::Finish(int result) {
|
| if (session_)
|
| session_->RemoveResponseDrainer(this);
|
|
|
| - if (result < 0) {
|
| + if (result < 0 || !stream_->CanReuseConnection()) {
|
| stream_->Close(true /* no keep-alive */);
|
| } else {
|
| DCHECK_EQ(OK, result);
|
|
|