1*6777b538SAndroid Build Coastguard Worker // Copyright 2015 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_SOCKET_CONNECTION_ATTEMPTS_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_SOCKET_CONNECTION_ATTEMPTS_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "net/base/ip_endpoint.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace net { 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker // A record of an connection attempt made to connect to a host. Includes TCP 13*6777b538SAndroid Build Coastguard Worker // and SSL errors, but not proxy connections. 14*6777b538SAndroid Build Coastguard Worker struct ConnectionAttempt { ConnectionAttemptConnectionAttempt15*6777b538SAndroid Build Coastguard Worker ConnectionAttempt(const IPEndPoint endpoint, int result) 16*6777b538SAndroid Build Coastguard Worker : endpoint(endpoint), result(result) {} 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker bool operator==(const ConnectionAttempt& other) const { 19*6777b538SAndroid Build Coastguard Worker return endpoint == other.endpoint && result == other.result; 20*6777b538SAndroid Build Coastguard Worker } 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker // Address and port the socket layer attempted to connect to. 23*6777b538SAndroid Build Coastguard Worker IPEndPoint endpoint; 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker // Net error indicating the result of that attempt. 26*6777b538SAndroid Build Coastguard Worker int result; 27*6777b538SAndroid Build Coastguard Worker }; 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker // Multiple connection attempts, as might be tracked in an HttpTransaction or a 30*6777b538SAndroid Build Coastguard Worker // URLRequest. Order is insignificant. 31*6777b538SAndroid Build Coastguard Worker typedef std::vector<ConnectionAttempt> ConnectionAttempts; 32*6777b538SAndroid Build Coastguard Worker 33*6777b538SAndroid Build Coastguard Worker } // namespace net 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker #endif // NET_SOCKET_CONNECTION_ATTEMPTS_H_ 36