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

Unified Diff: net/socket/client_socket_handle.h

Issue 1006643002: Plumb connection attempts from (non-proxy) ConnectJobs to HttpNetworkTransaction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | net/socket/ssl_client_socket_pool.cc » ('j') | net/socket/ssl_client_socket_pool.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/client_socket_handle.h
diff --git a/net/socket/client_socket_handle.h b/net/socket/client_socket_handle.h
index 0899d9a9bb067bea3d1c5c67a17dfd9a921bd68e..5b740982a70ef4bdbbe54a22411f7c2ff6cbfe8f 100644
--- a/net/socket/client_socket_handle.h
+++ b/net/socket/client_socket_handle.h
@@ -12,6 +12,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/time/time.h"
#include "net/base/completion_callback.h"
+#include "net/base/ip_endpoint.h"
#include "net/base/load_states.h"
#include "net/base/load_timing_info.h"
#include "net/base/net_errors.h"
@@ -39,6 +40,15 @@ class NET_EXPORT ClientSocketHandle {
NUM_TYPES,
};
+ // A record of a TCP connection attempt made to connect to the host.
+ struct ConnectionAttempt {
+ // Address and port the socket layer attempted to connect to.
+ IPEndPoint endpoint;
+
+ // Net error indicating the result of that attempt.
+ int result;
+ };
+
ClientSocketHandle();
~ClientSocketHandle();
@@ -136,6 +146,9 @@ class NET_EXPORT ClientSocketHandle {
void set_pending_http_proxy_connection(ClientSocketHandle* connection) {
pending_http_proxy_connection_.reset(connection);
}
+ void set_connection_attempts(std::vector<ConnectionAttempt> attempts) {
+ connection_attempts_ = attempts;
+ }
// Only valid if there is no |socket_|.
bool is_ssl_error() const {
@@ -151,6 +164,9 @@ class NET_EXPORT ClientSocketHandle {
ClientSocketHandle* release_pending_http_proxy_connection() {
return pending_http_proxy_connection_.release();
}
+ const std::vector<ConnectionAttempt>& connection_attempts() {
+ return connection_attempts_;
+ }
StreamSocket* socket() { return socket_.get(); }
@@ -200,6 +216,7 @@ class NET_EXPORT ClientSocketHandle {
bool is_ssl_error_;
HttpResponseInfo ssl_error_response_info_;
scoped_ptr<ClientSocketHandle> pending_http_proxy_connection_;
+ std::vector<ConnectionAttempt> connection_attempts_;
base::TimeTicks init_time_;
base::TimeDelta setup_time_;
« no previous file with comments | « no previous file | net/socket/ssl_client_socket_pool.cc » ('j') | net/socket/ssl_client_socket_pool.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698