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

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

Issue 9148011: Allow chrome to handle 407 auth challenges to CONNECT requests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 8 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 | Annotate | Revision Log
« no previous file with comments | « net/socket/client_socket_pool_manager.h ('k') | net/socket/ssl_client_socket_pool.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/client_socket_pool_manager.h" 5 #include "net/socket/client_socket_pool_manager.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 HttpNetworkSession* session, 45 HttpNetworkSession* session,
46 const ProxyInfo& proxy_info, 46 const ProxyInfo& proxy_info,
47 bool force_spdy_over_ssl, 47 bool force_spdy_over_ssl,
48 bool want_spdy_over_npn, 48 bool want_spdy_over_npn,
49 const SSLConfig& ssl_config_for_origin, 49 const SSLConfig& ssl_config_for_origin,
50 const SSLConfig& ssl_config_for_proxy, 50 const SSLConfig& ssl_config_for_proxy,
51 bool force_tunnel, 51 bool force_tunnel,
52 const BoundNetLog& net_log, 52 const BoundNetLog& net_log,
53 int num_preconnect_streams, 53 int num_preconnect_streams,
54 ClientSocketHandle* socket_handle, 54 ClientSocketHandle* socket_handle,
55 TunnelAuthCallback auth_needed_callback,
55 const CompletionCallback& callback) { 56 const CompletionCallback& callback) {
56 scoped_refptr<TransportSocketParams> tcp_params; 57 scoped_refptr<TransportSocketParams> tcp_params;
57 scoped_refptr<HttpProxySocketParams> http_proxy_params; 58 scoped_refptr<HttpProxySocketParams> http_proxy_params;
58 scoped_refptr<SOCKSSocketParams> socks_params; 59 scoped_refptr<SOCKSSocketParams> socks_params;
59 scoped_ptr<HostPortPair> proxy_host_port; 60 scoped_ptr<HostPortPair> proxy_host_port;
60 61
61 bool using_ssl = request_url.SchemeIs("https") || force_spdy_over_ssl; 62 bool using_ssl = request_url.SchemeIs("https") || force_spdy_over_ssl;
62 63
63 HostPortPair origin_host_port = 64 HostPortPair origin_host_port =
64 HostPortPair(request_url.HostNoBrackets(), 65 HostPortPair(request_url.HostNoBrackets(),
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 130
130 http_proxy_params = 131 http_proxy_params =
131 new HttpProxySocketParams(proxy_tcp_params, 132 new HttpProxySocketParams(proxy_tcp_params,
132 ssl_params, 133 ssl_params,
133 request_url, 134 request_url,
134 user_agent, 135 user_agent,
135 origin_host_port, 136 origin_host_port,
136 session->http_auth_cache(), 137 session->http_auth_cache(),
137 session->http_auth_handler_factory(), 138 session->http_auth_handler_factory(),
138 session->spdy_session_pool(), 139 session->spdy_session_pool(),
139 force_tunnel || using_ssl); 140 force_tunnel || using_ssl,
141 auth_needed_callback);
140 } else { 142 } else {
141 DCHECK(proxy_info.is_socks()); 143 DCHECK(proxy_info.is_socks());
142 char socks_version; 144 char socks_version;
143 if (proxy_server.scheme() == ProxyServer::SCHEME_SOCKS5) 145 if (proxy_server.scheme() == ProxyServer::SCHEME_SOCKS5)
144 socks_version = '5'; 146 socks_version = '5';
145 else 147 else
146 socks_version = '4'; 148 socks_version = '4';
147 connection_group = base::StringPrintf( 149 connection_group = base::StringPrintf(
148 "socks%c/%s", socks_version, connection_group.c_str()); 150 "socks%c/%s", socks_version, connection_group.c_str());
149 151
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 int request_load_flags, 284 int request_load_flags,
283 RequestPriority request_priority, 285 RequestPriority request_priority,
284 HttpNetworkSession* session, 286 HttpNetworkSession* session,
285 const ProxyInfo& proxy_info, 287 const ProxyInfo& proxy_info,
286 bool force_spdy_over_ssl, 288 bool force_spdy_over_ssl,
287 bool want_spdy_over_npn, 289 bool want_spdy_over_npn,
288 const SSLConfig& ssl_config_for_origin, 290 const SSLConfig& ssl_config_for_origin,
289 const SSLConfig& ssl_config_for_proxy, 291 const SSLConfig& ssl_config_for_proxy,
290 const BoundNetLog& net_log, 292 const BoundNetLog& net_log,
291 ClientSocketHandle* socket_handle, 293 ClientSocketHandle* socket_handle,
294 TunnelAuthCallback auth_needed_callback,
292 const CompletionCallback& callback) { 295 const CompletionCallback& callback) {
296
293 DCHECK(socket_handle); 297 DCHECK(socket_handle);
294 return InitSocketPoolHelper( 298 return InitSocketPoolHelper(
295 request_url, request_extra_headers, request_load_flags, request_priority, 299 request_url, request_extra_headers, request_load_flags, request_priority,
296 session, proxy_info, force_spdy_over_ssl, want_spdy_over_npn, 300 session, proxy_info, force_spdy_over_ssl, want_spdy_over_npn,
297 ssl_config_for_origin, ssl_config_for_proxy, false, net_log, 0, 301 ssl_config_for_origin, ssl_config_for_proxy, false, net_log, 0,
298 socket_handle, callback); 302 socket_handle, auth_needed_callback, callback);
299 } 303 }
300 304
301 int InitSocketHandleForRawConnect( 305 int InitSocketHandleForRawConnect(
302 const HostPortPair& host_port_pair, 306 const HostPortPair& host_port_pair,
303 HttpNetworkSession* session, 307 HttpNetworkSession* session,
304 const ProxyInfo& proxy_info, 308 const ProxyInfo& proxy_info,
305 const SSLConfig& ssl_config_for_origin, 309 const SSLConfig& ssl_config_for_origin,
306 const SSLConfig& ssl_config_for_proxy, 310 const SSLConfig& ssl_config_for_proxy,
307 const BoundNetLog& net_log, 311 const BoundNetLog& net_log,
308 ClientSocketHandle* socket_handle, 312 ClientSocketHandle* socket_handle,
313 TunnelAuthCallback auth_needed_callback,
309 const CompletionCallback& callback) { 314 const CompletionCallback& callback) {
310 DCHECK(socket_handle); 315 DCHECK(socket_handle);
311 // Synthesize an HttpRequestInfo. 316 // Synthesize an HttpRequestInfo.
312 GURL request_url = GURL("http://" + host_port_pair.ToString()); 317 GURL request_url = GURL("http://" + host_port_pair.ToString());
313 HttpRequestHeaders request_extra_headers; 318 HttpRequestHeaders request_extra_headers;
314 int request_load_flags = 0; 319 int request_load_flags = 0;
315 RequestPriority request_priority = MEDIUM; 320 RequestPriority request_priority = MEDIUM;
316
317 return InitSocketPoolHelper( 321 return InitSocketPoolHelper(
318 request_url, request_extra_headers, request_load_flags, request_priority, 322 request_url, request_extra_headers, request_load_flags, request_priority,
319 session, proxy_info, false, false, ssl_config_for_origin, 323 session, proxy_info, false, false, ssl_config_for_origin,
320 ssl_config_for_proxy, true, net_log, 0, socket_handle, callback); 324 ssl_config_for_proxy, true, net_log, 0, socket_handle,
325 auth_needed_callback, callback);
321 } 326 }
322 327
323 int PreconnectSocketsForHttpRequest( 328 int PreconnectSocketsForHttpRequest(
324 const GURL& request_url, 329 const GURL& request_url,
325 const HttpRequestHeaders& request_extra_headers, 330 const HttpRequestHeaders& request_extra_headers,
326 int request_load_flags, 331 int request_load_flags,
327 RequestPriority request_priority, 332 RequestPriority request_priority,
328 HttpNetworkSession* session, 333 HttpNetworkSession* session,
329 const ProxyInfo& proxy_info, 334 const ProxyInfo& proxy_info,
330 bool force_spdy_over_ssl, 335 bool force_spdy_over_ssl,
331 bool want_spdy_over_npn, 336 bool want_spdy_over_npn,
332 const SSLConfig& ssl_config_for_origin, 337 const SSLConfig& ssl_config_for_origin,
333 const SSLConfig& ssl_config_for_proxy, 338 const SSLConfig& ssl_config_for_proxy,
334 const BoundNetLog& net_log, 339 const BoundNetLog& net_log,
335 int num_preconnect_streams) { 340 int num_preconnect_streams,
341 TunnelAuthCallback auth_needed_callback) {
336 return InitSocketPoolHelper( 342 return InitSocketPoolHelper(
337 request_url, request_extra_headers, request_load_flags, request_priority, 343 request_url, request_extra_headers, request_load_flags, request_priority,
338 session, proxy_info, force_spdy_over_ssl, want_spdy_over_npn, 344 session, proxy_info, force_spdy_over_ssl, want_spdy_over_npn,
339 ssl_config_for_origin, ssl_config_for_proxy, false, net_log, 345 ssl_config_for_origin, ssl_config_for_proxy, false, net_log,
340 num_preconnect_streams, NULL, CompletionCallback()); 346 num_preconnect_streams, NULL, auth_needed_callback, CompletionCallback());
341 } 347 }
342 348
343 } // namespace net 349 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/client_socket_pool_manager.h ('k') | net/socket/ssl_client_socket_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698