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

Side by Side Diff: net/socket/transport_client_socket_pool.cc

Issue 11528012: [net] Make IPEndPoint::GetFamily() return AddressFamily and add GetSockAddrFamily() to be used when… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update uses of GetFamily in net/dns/ Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/socket/transport_client_socket_pool.h" 5 #include "net/socket/transport_client_socket_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 20 matching lines...) Expand all
31 // don't synchronize. 31 // don't synchronize.
32 const int TransportConnectJob::kIPv6FallbackTimerInMs = 300; 32 const int TransportConnectJob::kIPv6FallbackTimerInMs = 300;
33 33
34 namespace { 34 namespace {
35 35
36 // Returns true iff all addresses in |list| are in the IPv6 family. 36 // Returns true iff all addresses in |list| are in the IPv6 family.
37 bool AddressListOnlyContainsIPv6(const AddressList& list) { 37 bool AddressListOnlyContainsIPv6(const AddressList& list) {
38 DCHECK(!list.empty()); 38 DCHECK(!list.empty());
39 for (AddressList::const_iterator iter = list.begin(); iter != list.end(); 39 for (AddressList::const_iterator iter = list.begin(); iter != list.end();
40 ++iter) { 40 ++iter) {
41 if (iter->GetFamily() != AF_INET6) 41 if (iter->GetFamily() != ADDRESS_FAMILY_IPV6)
42 return false; 42 return false;
43 } 43 }
44 return true; 44 return true;
45 } 45 }
46 46
47 } // namespace 47 } // namespace
48 48
49 TransportSocketParams::TransportSocketParams( 49 TransportSocketParams::TransportSocketParams(
50 const HostPortPair& host_port_pair, 50 const HostPortPair& host_port_pair,
51 RequestPriority priority, 51 RequestPriority priority,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 return LOAD_STATE_CONNECTING; 109 return LOAD_STATE_CONNECTING;
110 default: 110 default:
111 NOTREACHED(); 111 NOTREACHED();
112 return LOAD_STATE_IDLE; 112 return LOAD_STATE_IDLE;
113 } 113 }
114 } 114 }
115 115
116 // static 116 // static
117 void TransportConnectJob::MakeAddressListStartWithIPv4(AddressList* list) { 117 void TransportConnectJob::MakeAddressListStartWithIPv4(AddressList* list) {
118 for (AddressList::iterator i = list->begin(); i != list->end(); ++i) { 118 for (AddressList::iterator i = list->begin(); i != list->end(); ++i) {
119 if (i->GetFamily() == AF_INET) { 119 if (i->GetFamily() == ADDRESS_FAMILY_IPV4) {
120 std::rotate(list->begin(), i, list->end()); 120 std::rotate(list->begin(), i, list->end());
121 break; 121 break;
122 } 122 }
123 } 123 }
124 } 124 }
125 125
126 void TransportConnectJob::OnIOComplete(int result) { 126 void TransportConnectJob::OnIOComplete(int result) {
127 int rv = DoLoop(result); 127 int rv = DoLoop(result);
128 if (rv != ERR_IO_PENDING) 128 if (rv != ERR_IO_PENDING)
129 NotifyDelegateOfCompletion(rv); // Deletes |this| 129 NotifyDelegateOfCompletion(rv); // Deletes |this|
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 182 }
183 183
184 int TransportConnectJob::DoTransportConnect() { 184 int TransportConnectJob::DoTransportConnect() {
185 next_state_ = STATE_TRANSPORT_CONNECT_COMPLETE; 185 next_state_ = STATE_TRANSPORT_CONNECT_COMPLETE;
186 transport_socket_.reset(client_socket_factory_->CreateTransportClientSocket( 186 transport_socket_.reset(client_socket_factory_->CreateTransportClientSocket(
187 addresses_, net_log().net_log(), net_log().source())); 187 addresses_, net_log().net_log(), net_log().source()));
188 connect_start_time_ = base::TimeTicks::Now(); 188 connect_start_time_ = base::TimeTicks::Now();
189 int rv = transport_socket_->Connect( 189 int rv = transport_socket_->Connect(
190 base::Bind(&TransportConnectJob::OnIOComplete, base::Unretained(this))); 190 base::Bind(&TransportConnectJob::OnIOComplete, base::Unretained(this)));
191 if (rv == ERR_IO_PENDING && 191 if (rv == ERR_IO_PENDING &&
192 addresses_.front().GetFamily() == AF_INET6 && 192 addresses_.front().GetFamily() == ADDRESS_FAMILY_IPV6 &&
193 !AddressListOnlyContainsIPv6(addresses_)) { 193 !AddressListOnlyContainsIPv6(addresses_)) {
194 fallback_timer_.Start(FROM_HERE, 194 fallback_timer_.Start(FROM_HERE,
195 base::TimeDelta::FromMilliseconds(kIPv6FallbackTimerInMs), 195 base::TimeDelta::FromMilliseconds(kIPv6FallbackTimerInMs),
196 this, &TransportConnectJob::DoIPv6FallbackTransportConnect); 196 this, &TransportConnectJob::DoIPv6FallbackTransportConnect);
197 } 197 }
198 return rv; 198 return rv;
199 } 199 }
200 200
201 int TransportConnectJob::DoTransportConnectComplete(int result) { 201 int TransportConnectJob::DoTransportConnectComplete(int result) {
202 if (result == OK) { 202 if (result == OK) {
203 bool is_ipv4 = addresses_.front().GetFamily() != AF_INET6; 203 bool is_ipv4 = addresses_.front().GetFamily() == ADDRESS_FAMILY_IPV4;
204 DCHECK(connect_start_time_ != base::TimeTicks()); 204 DCHECK(connect_start_time_ != base::TimeTicks());
205 DCHECK(start_time_ != base::TimeTicks()); 205 DCHECK(start_time_ != base::TimeTicks());
206 base::TimeTicks now = base::TimeTicks::Now(); 206 base::TimeTicks now = base::TimeTicks::Now();
207 base::TimeDelta total_duration = now - start_time_; 207 base::TimeDelta total_duration = now - start_time_;
208 UMA_HISTOGRAM_CUSTOM_TIMES( 208 UMA_HISTOGRAM_CUSTOM_TIMES(
209 "Net.DNS_Resolution_And_TCP_Connection_Latency2", 209 "Net.DNS_Resolution_And_TCP_Connection_Latency2",
210 total_duration, 210 total_duration,
211 base::TimeDelta::FromMilliseconds(1), 211 base::TimeDelta::FromMilliseconds(1),
212 base::TimeDelta::FromMinutes(10), 212 base::TimeDelta::FromMinutes(10),
213 100); 213 100);
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 462
463 base::TimeDelta TransportClientSocketPool::ConnectionTimeout() const { 463 base::TimeDelta TransportClientSocketPool::ConnectionTimeout() const {
464 return base_.ConnectionTimeout(); 464 return base_.ConnectionTimeout();
465 } 465 }
466 466
467 ClientSocketPoolHistograms* TransportClientSocketPool::histograms() const { 467 ClientSocketPoolHistograms* TransportClientSocketPool::histograms() const {
468 return base_.histograms(); 468 return base_.histograms();
469 } 469 }
470 470
471 } // namespace net 471 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/tcp_server_socket_win.cc ('k') | net/socket/transport_client_socket_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698