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/http/http_proxy_client_socket_pool.h" | 5 #include "net/http/http_proxy_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/time/time.h" | 10 #include "base/time/time.h" |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
230 if (IsCertificateError(result)) { | 230 if (IsCertificateError(result)) { |
231 if (params_->ssl_params()->load_flags() & LOAD_IGNORE_ALL_CERT_ERRORS) { | 231 if (params_->ssl_params()->load_flags() & LOAD_IGNORE_ALL_CERT_ERRORS) { |
232 result = OK; | 232 result = OK; |
233 } else { | 233 } else { |
234 // TODO(rch): allow the user to deal with proxy cert errors in the | 234 // TODO(rch): allow the user to deal with proxy cert errors in the |
235 // same way as server cert errors. | 235 // same way as server cert errors. |
236 transport_socket_handle_->socket()->Disconnect(); | 236 transport_socket_handle_->socket()->Disconnect(); |
237 return ERR_PROXY_CERTIFICATE_INVALID; | 237 return ERR_PROXY_CERTIFICATE_INVALID; |
238 } | 238 } |
239 } | 239 } |
240 // A SPDY session to the proxy completed prior to resolving the proxy | |
241 // hostname. Surface this error, and allow the delegate to retry. | |
242 // See crbug.com/334413. | |
243 if (result == ERR_SPDY_SESSION_ALREADY_EXISTS) { | |
244 DCHECK(!transport_socket_handle_->socket()); | |
245 return ERR_SPDY_SESSION_ALREADY_EXISTS; | |
246 } | |
240 if (result < 0) { | 247 if (result < 0) { |
241 if (transport_socket_handle_->socket()) | 248 if (transport_socket_handle_->socket()) |
242 transport_socket_handle_->socket()->Disconnect(); | 249 transport_socket_handle_->socket()->Disconnect(); |
243 return ERR_PROXY_CONNECTION_FAILED; | 250 return ERR_PROXY_CONNECTION_FAILED; |
Johnny
2014/06/19 04:08:43
Is there a particular rationale for converting to
Ryan Hamilton
2014/06/19 04:25:38
Wow, This code is a blast from the past. I *think*
| |
244 } | 251 } |
245 | 252 |
246 SSLClientSocket* ssl = | 253 SSLClientSocket* ssl = |
247 static_cast<SSLClientSocket*>(transport_socket_handle_->socket()); | 254 static_cast<SSLClientSocket*>(transport_socket_handle_->socket()); |
248 using_spdy_ = ssl->was_spdy_negotiated(); | 255 using_spdy_ = ssl->was_spdy_negotiated(); |
249 protocol_negotiated_ = ssl->GetNegotiatedProtocol(); | 256 protocol_negotiated_ = ssl->GetNegotiatedProtocol(); |
250 | 257 |
251 // Reset the timer to just the length of time allowed for HttpProxy handshake | 258 // Reset the timer to just the length of time allowed for HttpProxy handshake |
252 // so that a fast SSL connection plus a slow HttpProxy failure doesn't take | 259 // so that a fast SSL connection plus a slow HttpProxy failure doesn't take |
253 // longer to timeout than it should. | 260 // longer to timeout than it should. |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
534 base_.RemoveHigherLayeredPool(higher_pool); | 541 base_.RemoveHigherLayeredPool(higher_pool); |
535 } | 542 } |
536 | 543 |
537 bool HttpProxyClientSocketPool::CloseOneIdleConnection() { | 544 bool HttpProxyClientSocketPool::CloseOneIdleConnection() { |
538 if (base_.CloseOneIdleSocket()) | 545 if (base_.CloseOneIdleSocket()) |
539 return true; | 546 return true; |
540 return base_.CloseOneIdleConnectionInHigherLayeredPool(); | 547 return base_.CloseOneIdleConnectionInHigherLayeredPool(); |
541 } | 548 } |
542 | 549 |
543 } // namespace net | 550 } // namespace net |
OLD | NEW |