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

Side by Side Diff: net/socket_stream/socket_stream.cc

Issue 135373002: Added SSLHostInfo. Storing of server host info to our standard disk cache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed wtc's comments Created 6 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
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 // 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698