| OLD | NEW |
| 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 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher; | 297 std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher; |
| 298 if (socket_performance_watcher_factory_) { | 298 if (socket_performance_watcher_factory_) { |
| 299 socket_performance_watcher = | 299 socket_performance_watcher = |
| 300 socket_performance_watcher_factory_->CreateSocketPerformanceWatcher( | 300 socket_performance_watcher_factory_->CreateSocketPerformanceWatcher( |
| 301 SocketPerformanceWatcherFactory::PROTOCOL_TCP); | 301 SocketPerformanceWatcherFactory::PROTOCOL_TCP); |
| 302 } | 302 } |
| 303 transport_socket_ = client_socket_factory_->CreateTransportClientSocket( | 303 transport_socket_ = client_socket_factory_->CreateTransportClientSocket( |
| 304 addresses_, std::move(socket_performance_watcher), net_log().net_log(), | 304 addresses_, std::move(socket_performance_watcher), net_log().net_log(), |
| 305 net_log().source()); | 305 net_log().source()); |
| 306 | 306 |
| 307 // If the list contains IPv6 and IPv4 addresses, the first address will | 307 // If the list contains IPv6 and IPv4 addresses, and the first address |
| 308 // be IPv6, and the IPv4 addresses will be tried as fallback addresses, | 308 // is IPv6, the IPv4 addresses will be tried as fallback addresses, per |
| 309 // per "Happy Eyeballs" (RFC 6555). | 309 // "Happy Eyeballs" (RFC 6555). |
| 310 bool try_ipv6_connect_with_ipv4_fallback = | 310 bool try_ipv6_connect_with_ipv4_fallback = |
| 311 addresses_.front().GetFamily() == ADDRESS_FAMILY_IPV6 && | 311 addresses_.front().GetFamily() == ADDRESS_FAMILY_IPV6 && |
| 312 !AddressListOnlyContainsIPv6(addresses_); | 312 !AddressListOnlyContainsIPv6(addresses_); |
| 313 | 313 |
| 314 // Enable TCP FastOpen if indicated by transport socket params. | 314 // Enable TCP FastOpen if indicated by transport socket params. |
| 315 // Note: We currently do not turn on TCP FastOpen for destinations where | 315 // Note: We currently do not turn on TCP FastOpen for destinations where |
| 316 // we try a TCP connect over IPv6 with fallback to IPv4. | 316 // we try a TCP connect over IPv6 with fallback to IPv4. |
| 317 if (!try_ipv6_connect_with_ipv4_fallback && | 317 if (!try_ipv6_connect_with_ipv4_fallback && |
| 318 params_->combine_connect_and_write() == | 318 params_->combine_connect_and_write() == |
| 319 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DESIRED) { | 319 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DESIRED) { |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 608 HigherLayeredPool* higher_pool) { | 608 HigherLayeredPool* higher_pool) { |
| 609 base_.AddHigherLayeredPool(higher_pool); | 609 base_.AddHigherLayeredPool(higher_pool); |
| 610 } | 610 } |
| 611 | 611 |
| 612 void TransportClientSocketPool::RemoveHigherLayeredPool( | 612 void TransportClientSocketPool::RemoveHigherLayeredPool( |
| 613 HigherLayeredPool* higher_pool) { | 613 HigherLayeredPool* higher_pool) { |
| 614 base_.RemoveHigherLayeredPool(higher_pool); | 614 base_.RemoveHigherLayeredPool(higher_pool); |
| 615 } | 615 } |
| 616 | 616 |
| 617 } // namespace net | 617 } // namespace net |
| OLD | NEW |