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

Unified Diff: net/http/http_response_body_drainer.cc

Issue 1884943003: HttpStreamParser: Don't reuse sockets which receive unparsed data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix drainer test ('True' means closed...) Created 4 years, 8 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/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);

Powered by Google App Engine
This is Rietveld 408576698