| 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 // TODO(ukai): code is similar with http_network_transaction.cc. We should | 5 // TODO(ukai): code is similar with http_network_transaction.cc. We should |
| 6 // think about ways to share code, if possible. | 6 // think about ways to share code, if possible. |
| 7 | 7 |
| 8 #include "net/socket_stream/socket_stream.h" | 8 #include "net/socket_stream/socket_stream.h" |
| 9 | 9 |
| 10 #include <set> | 10 #include <set> |
| (...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 998 } | 998 } |
| 999 return result; | 999 return result; |
| 1000 } | 1000 } |
| 1001 | 1001 |
| 1002 int SocketStream::DoSecureProxyConnect() { | 1002 int SocketStream::DoSecureProxyConnect() { |
| 1003 DCHECK(factory_); | 1003 DCHECK(factory_); |
| 1004 SSLClientSocketContext ssl_context; | 1004 SSLClientSocketContext ssl_context; |
| 1005 ssl_context.cert_verifier = context_->cert_verifier(); | 1005 ssl_context.cert_verifier = context_->cert_verifier(); |
| 1006 ssl_context.transport_security_state = context_->transport_security_state(); | 1006 ssl_context.transport_security_state = context_->transport_security_state(); |
| 1007 ssl_context.server_bound_cert_service = context_->server_bound_cert_service(); | 1007 ssl_context.server_bound_cert_service = context_->server_bound_cert_service(); |
| 1008 // TODO(agl): look into plumbing SSLHostInfo here. |
| 1008 scoped_ptr<StreamSocket> socket(factory_->CreateSSLClientSocket( | 1009 scoped_ptr<StreamSocket> socket(factory_->CreateSSLClientSocket( |
| 1009 connection_.Pass(), | 1010 connection_.Pass(), |
| 1010 proxy_info_.proxy_server().host_port_pair(), | 1011 proxy_info_.proxy_server().host_port_pair(), |
| 1011 proxy_ssl_config_, | 1012 proxy_ssl_config_, |
| 1013 NULL /* ssl_host_info */, |
| 1012 ssl_context)); | 1014 ssl_context)); |
| 1013 connection_.reset(new ClientSocketHandle); | 1015 connection_.reset(new ClientSocketHandle); |
| 1014 connection_->SetSocket(socket.Pass()); | 1016 connection_->SetSocket(socket.Pass()); |
| 1015 next_state_ = STATE_SECURE_PROXY_CONNECT_COMPLETE; | 1017 next_state_ = STATE_SECURE_PROXY_CONNECT_COMPLETE; |
| 1016 metrics_->OnCountConnectionType(SocketStreamMetrics::SECURE_PROXY_CONNECTION); | 1018 metrics_->OnCountConnectionType(SocketStreamMetrics::SECURE_PROXY_CONNECTION); |
| 1017 return connection_->socket()->Connect(io_callback_); | 1019 return connection_->socket()->Connect(io_callback_); |
| 1018 } | 1020 } |
| 1019 | 1021 |
| 1020 int SocketStream::DoSecureProxyConnectComplete(int result) { | 1022 int SocketStream::DoSecureProxyConnectComplete(int result) { |
| 1021 DCHECK_EQ(STATE_NONE, next_state_); | 1023 DCHECK_EQ(STATE_NONE, next_state_); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1054 } | 1056 } |
| 1055 return result; | 1057 return result; |
| 1056 } | 1058 } |
| 1057 | 1059 |
| 1058 int SocketStream::DoSSLConnect() { | 1060 int SocketStream::DoSSLConnect() { |
| 1059 DCHECK(factory_); | 1061 DCHECK(factory_); |
| 1060 SSLClientSocketContext ssl_context; | 1062 SSLClientSocketContext ssl_context; |
| 1061 ssl_context.cert_verifier = context_->cert_verifier(); | 1063 ssl_context.cert_verifier = context_->cert_verifier(); |
| 1062 ssl_context.transport_security_state = context_->transport_security_state(); | 1064 ssl_context.transport_security_state = context_->transport_security_state(); |
| 1063 ssl_context.server_bound_cert_service = context_->server_bound_cert_service(); | 1065 ssl_context.server_bound_cert_service = context_->server_bound_cert_service(); |
| 1066 // TODO(agl): look into plumbing SSLHostInfo here. |
| 1064 scoped_ptr<StreamSocket> socket( | 1067 scoped_ptr<StreamSocket> socket( |
| 1065 factory_->CreateSSLClientSocket(connection_.Pass(), | 1068 factory_->CreateSSLClientSocket(connection_.Pass(), |
| 1066 HostPortPair::FromURL(url_), | 1069 HostPortPair::FromURL(url_), |
| 1067 server_ssl_config_, | 1070 server_ssl_config_, |
| 1071 NULL /* ssl_host_info */, |
| 1068 ssl_context)); | 1072 ssl_context)); |
| 1069 connection_.reset(new ClientSocketHandle); | 1073 connection_.reset(new ClientSocketHandle); |
| 1070 connection_->SetSocket(socket.Pass()); | 1074 connection_->SetSocket(socket.Pass()); |
| 1071 next_state_ = STATE_SSL_CONNECT_COMPLETE; | 1075 next_state_ = STATE_SSL_CONNECT_COMPLETE; |
| 1072 metrics_->OnCountConnectionType(SocketStreamMetrics::SSL_CONNECTION); | 1076 metrics_->OnCountConnectionType(SocketStreamMetrics::SSL_CONNECTION); |
| 1073 return connection_->socket()->Connect(io_callback_); | 1077 return connection_->socket()->Connect(io_callback_); |
| 1074 } | 1078 } |
| 1075 | 1079 |
| 1076 int SocketStream::DoSSLConnectComplete(int result) { | 1080 int SocketStream::DoSSLConnectComplete(int result) { |
| 1077 DCHECK_EQ(STATE_NONE, next_state_); | 1081 DCHECK_EQ(STATE_NONE, next_state_); |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1336 context_->transport_security_state()->GetDomainState(url_.host(), | 1340 context_->transport_security_state()->GetDomainState(url_.host(), |
| 1337 SSLConfigService::IsSNIAvailable(context_->ssl_config_service()), | 1341 SSLConfigService::IsSNIAvailable(context_->ssl_config_service()), |
| 1338 &domain_state) && | 1342 &domain_state) && |
| 1339 domain_state.ShouldSSLErrorsBeFatal(); | 1343 domain_state.ShouldSSLErrorsBeFatal(); |
| 1340 | 1344 |
| 1341 delegate_->OnSSLCertificateError(this, ssl_info, fatal); | 1345 delegate_->OnSSLCertificateError(this, ssl_info, fatal); |
| 1342 return ERR_IO_PENDING; | 1346 return ERR_IO_PENDING; |
| 1343 } | 1347 } |
| 1344 | 1348 |
| 1345 } // namespace net | 1349 } // namespace net |
| OLD | NEW |