Index: net/socket/tcp_client_socket.cc |
diff --git a/net/socket/tcp_client_socket.cc b/net/socket/tcp_client_socket.cc |
index 4a72bdf1d0c93a386a0f50d5d447d62758687a43..f7a3ea9a606b8ae8f7ec5064dc0f2c2c8b34b5fd 100644 |
--- a/net/socket/tcp_client_socket.cc |
+++ b/net/socket/tcp_client_socket.cc |
@@ -124,6 +124,7 @@ int TCPClientSocket::DoConnect() { |
if (previously_disconnected_) { |
use_history_.Reset(); |
+ connection_attempts_.clear(); |
previously_disconnected_ = false; |
} |
@@ -159,6 +160,9 @@ int TCPClientSocket::DoConnectComplete(int result) { |
return OK; // Done! |
} |
+ connection_attempts_.push_back( |
+ ConnectionAttempt(addresses_[current_address_index_], result)); |
+ |
// Close whatever partially connected socket we currently have. |
DoDisconnect(); |
@@ -296,6 +300,10 @@ bool TCPClientSocket::SetNoDelay(bool no_delay) { |
return socket_->SetNoDelay(no_delay); |
} |
+void TCPClientSocket::GetConnectionAttempts(ConnectionAttempts* out) const { |
+ *out = connection_attempts_; |
+} |
+ |
void TCPClientSocket::DidCompleteConnect(int result) { |
DCHECK_EQ(next_connect_state_, CONNECT_STATE_CONNECT_COMPLETE); |
DCHECK_NE(result, ERR_IO_PENDING); |