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

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

Issue 1580903002: Convert ignore_limits from a SocketParam to a socket request argument. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 4 years, 11 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 unified diff | Download patch
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 #ifndef NET_SOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_ 5 #ifndef NET_SOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_
6 #define NET_SOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_ 6 #define NET_SOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 COMBINE_CONNECT_AND_WRITE_PROHIBITED // Do not combine. 43 COMBINE_CONNECT_AND_WRITE_PROHIBITED // Do not combine.
44 }; 44 };
45 45
46 // |host_resolution_callback| will be invoked after the the hostname is 46 // |host_resolution_callback| will be invoked after the the hostname is
47 // resolved. If |host_resolution_callback| does not return OK, then the 47 // resolved. If |host_resolution_callback| does not return OK, then the
48 // connection will be aborted with that value. |combine_connect_and_write| 48 // connection will be aborted with that value. |combine_connect_and_write|
49 // defines the policy for use of TCP FastOpen on this socket. 49 // defines the policy for use of TCP FastOpen on this socket.
50 TransportSocketParams( 50 TransportSocketParams(
51 const HostPortPair& host_port_pair, 51 const HostPortPair& host_port_pair,
52 bool disable_resolver_cache, 52 bool disable_resolver_cache,
53 bool ignore_limits,
54 const OnHostResolutionCallback& host_resolution_callback, 53 const OnHostResolutionCallback& host_resolution_callback,
55 CombineConnectAndWritePolicy combine_connect_and_write); 54 CombineConnectAndWritePolicy combine_connect_and_write);
56 55
57 const HostResolver::RequestInfo& destination() const { return destination_; } 56 const HostResolver::RequestInfo& destination() const { return destination_; }
58 bool ignore_limits() const { return ignore_limits_; }
59 const OnHostResolutionCallback& host_resolution_callback() const { 57 const OnHostResolutionCallback& host_resolution_callback() const {
60 return host_resolution_callback_; 58 return host_resolution_callback_;
61 } 59 }
62 60
63 CombineConnectAndWritePolicy combine_connect_and_write() const { 61 CombineConnectAndWritePolicy combine_connect_and_write() const {
64 return combine_connect_and_write_; 62 return combine_connect_and_write_;
65 } 63 }
66 64
67 private: 65 private:
68 friend class base::RefCounted<TransportSocketParams>; 66 friend class base::RefCounted<TransportSocketParams>;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 // logic for IPv6 connect() timeouts (which may happen due to networks / routers 149 // logic for IPv6 connect() timeouts (which may happen due to networks / routers
152 // with broken IPv6 support). Those timeouts take 20s, so rather than make the 150 // with broken IPv6 support). Those timeouts take 20s, so rather than make the
153 // user wait 20s for the timeout to fire, we use a fallback timer 151 // user wait 20s for the timeout to fire, we use a fallback timer
154 // (kIPv6FallbackTimerInMs) and start a connect() to a IPv4 address if the timer 152 // (kIPv6FallbackTimerInMs) and start a connect() to a IPv4 address if the timer
155 // fires. Then we race the IPv4 connect() against the IPv6 connect() (which has 153 // fires. Then we race the IPv4 connect() against the IPv6 connect() (which has
156 // a headstart) and return the one that completes first to the socket pool. 154 // a headstart) and return the one that completes first to the socket pool.
157 class NET_EXPORT_PRIVATE TransportConnectJob : public ConnectJob { 155 class NET_EXPORT_PRIVATE TransportConnectJob : public ConnectJob {
158 public: 156 public:
159 TransportConnectJob(const std::string& group_name, 157 TransportConnectJob(const std::string& group_name,
160 RequestPriority priority, 158 RequestPriority priority,
159 bool ignore_limits,
161 const scoped_refptr<TransportSocketParams>& params, 160 const scoped_refptr<TransportSocketParams>& params,
162 base::TimeDelta timeout_duration, 161 base::TimeDelta timeout_duration,
163 ClientSocketFactory* client_socket_factory, 162 ClientSocketFactory* client_socket_factory,
164 HostResolver* host_resolver, 163 HostResolver* host_resolver,
165 Delegate* delegate, 164 Delegate* delegate,
166 NetLog* net_log); 165 NetLog* net_log);
167 ~TransportConnectJob() override; 166 ~TransportConnectJob() override;
168 167
169 // ConnectJob methods. 168 // ConnectJob methods.
170 LoadState GetLoadState() const override; 169 LoadState GetLoadState() const override;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 HostResolver* host_resolver, 233 HostResolver* host_resolver,
235 ClientSocketFactory* client_socket_factory, 234 ClientSocketFactory* client_socket_factory,
236 NetLog* net_log); 235 NetLog* net_log);
237 236
238 ~TransportClientSocketPool() override; 237 ~TransportClientSocketPool() override;
239 238
240 // ClientSocketPool implementation. 239 // ClientSocketPool implementation.
241 int RequestSocket(const std::string& group_name, 240 int RequestSocket(const std::string& group_name,
242 const void* resolve_info, 241 const void* resolve_info,
243 RequestPriority priority, 242 RequestPriority priority,
243 bool ignore_limits,
244 ClientSocketHandle* handle, 244 ClientSocketHandle* handle,
245 const CompletionCallback& callback, 245 const CompletionCallback& callback,
246 const BoundNetLog& net_log) override; 246 const BoundNetLog& net_log) override;
247 void RequestSockets(const std::string& group_name, 247 void RequestSockets(const std::string& group_name,
248 const void* params, 248 const void* params,
249 int num_sockets, 249 int num_sockets,
250 const BoundNetLog& net_log) override; 250 const BoundNetLog& net_log) override;
251 void CancelRequest(const std::string& group_name, 251 void CancelRequest(const std::string& group_name,
252 ClientSocketHandle* handle) override; 252 ClientSocketHandle* handle) override;
253 void ReleaseSocket(const std::string& group_name, 253 void ReleaseSocket(const std::string& group_name,
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 break; 364 break;
365 } 365 }
366 } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE); 366 } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE);
367 367
368 return rv; 368 return rv;
369 } 369 }
370 370
371 } // namespace net 371 } // namespace net
372 372
373 #endif // NET_SOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_ 373 #endif // NET_SOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698