| 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_stream_factory_impl_job.h" | 5 #include "net/http/http_stream_factory_impl_job.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 858 replacements.SetHostStr(destination.host()); | 858 replacements.SetHostStr(destination.host()); |
| 859 const std::string new_port = base::UintToString(destination.port()); | 859 const std::string new_port = base::UintToString(destination.port()); |
| 860 replacements.SetPortStr(new_port); | 860 replacements.SetPortStr(new_port); |
| 861 replacements.ClearUsername(); | 861 replacements.ClearUsername(); |
| 862 replacements.ClearPassword(); | 862 replacements.ClearPassword(); |
| 863 replacements.ClearPath(); | 863 replacements.ClearPath(); |
| 864 replacements.ClearQuery(); | 864 replacements.ClearQuery(); |
| 865 replacements.ClearRef(); | 865 replacements.ClearRef(); |
| 866 url = url.ReplaceComponents(replacements); | 866 url = url.ReplaceComponents(replacements); |
| 867 | 867 |
| 868 // If QUIC is disabled on the destination port, return error. | 868 if (session_->quic_stream_factory()->IsQuicDisabled()) |
| 869 if (session_->quic_stream_factory()->IsQuicDisabled(destination.port())) | |
| 870 return ERR_QUIC_PROTOCOL_ERROR; | 869 return ERR_QUIC_PROTOCOL_ERROR; |
| 871 } else { | 870 } else { |
| 872 DCHECK(using_ssl_); | 871 DCHECK(using_ssl_); |
| 873 // The certificate of a QUIC alternative server is expected to be valid | 872 // The certificate of a QUIC alternative server is expected to be valid |
| 874 // for the origin of the request (in addition to being valid for the | 873 // for the origin of the request (in addition to being valid for the |
| 875 // server itself). | 874 // server itself). |
| 876 destination = destination_; | 875 destination = destination_; |
| 877 ssl_config = &server_ssl_config_; | 876 ssl_config = &server_ssl_config_; |
| 878 } | 877 } |
| 879 int rv = | 878 int rv = |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 988 using_spdy_ = true; | 987 using_spdy_ = true; |
| 989 next_state_ = STATE_CREATE_STREAM; | 988 next_state_ = STATE_CREATE_STREAM; |
| 990 } else { | 989 } else { |
| 991 // It is possible that the spdy session no longer exists. | 990 // It is possible that the spdy session no longer exists. |
| 992 ReturnToStateInitConnection(true /* close connection */); | 991 ReturnToStateInitConnection(true /* close connection */); |
| 993 } | 992 } |
| 994 return OK; | 993 return OK; |
| 995 } | 994 } |
| 996 | 995 |
| 997 if (proxy_info_.is_quic() && using_quic_) { | 996 if (proxy_info_.is_quic() && using_quic_) { |
| 998 // Mark QUIC proxy as bad if QUIC got disabled on the destination port. | 997 // Mark QUIC proxy as bad if QUIC got disabled. |
| 999 // Underlying QUIC layer would have closed the connection. | 998 // Underlying QUIC layer would have closed the connection. |
| 1000 HostPortPair destination = proxy_info_.proxy_server().host_port_pair(); | 999 HostPortPair destination = proxy_info_.proxy_server().host_port_pair(); |
| 1001 if (session_->quic_stream_factory()->IsQuicDisabled(destination.port())) { | 1000 if (session_->quic_stream_factory()->IsQuicDisabled()) { |
| 1002 using_quic_ = false; | 1001 using_quic_ = false; |
| 1003 return ReconsiderProxyAfterError(ERR_QUIC_PROTOCOL_ERROR); | 1002 return ReconsiderProxyAfterError(ERR_QUIC_PROTOCOL_ERROR); |
| 1004 } | 1003 } |
| 1005 } | 1004 } |
| 1006 | 1005 |
| 1007 // |result| may be the result of any of the stacked pools. The following | 1006 // |result| may be the result of any of the stacked pools. The following |
| 1008 // logic is used when determining how to interpret an error. | 1007 // logic is used when determining how to interpret an error. |
| 1009 // If |result| < 0: | 1008 // If |result| < 0: |
| 1010 // and connection_->socket() != NULL, then the SSL handshake ran and it | 1009 // and connection_->socket() != NULL, then the SSL handshake ran and it |
| 1011 // is a potentially recoverable error. | 1010 // is a potentially recoverable error. |
| (...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1631 | 1630 |
| 1632 ConnectionAttempts socket_attempts = connection_->connection_attempts(); | 1631 ConnectionAttempts socket_attempts = connection_->connection_attempts(); |
| 1633 if (connection_->socket()) { | 1632 if (connection_->socket()) { |
| 1634 connection_->socket()->GetConnectionAttempts(&socket_attempts); | 1633 connection_->socket()->GetConnectionAttempts(&socket_attempts); |
| 1635 } | 1634 } |
| 1636 | 1635 |
| 1637 delegate_->AddConnectionAttemptsToRequest(this, socket_attempts); | 1636 delegate_->AddConnectionAttemptsToRequest(this, socket_attempts); |
| 1638 } | 1637 } |
| 1639 | 1638 |
| 1640 } // namespace net | 1639 } // namespace net |
| OLD | NEW |