diff options
-rw-r--r-- | net/socket/ssl_client_socket_nss.cc | 9 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_pool.cc | 2 | ||||
-rw-r--r-- | net/socket/ssl_host_info.cc | 8 |
3 files changed, 11 insertions, 8 deletions
diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc index 05cad27..3f56b59 100644 --- a/net/socket/ssl_client_socket_nss.cc +++ b/net/socket/ssl_client_socket_nss.cc @@ -481,6 +481,11 @@ void SSLClientSocketNSS::SaveSnapStartInfo() { if (!ssl_host_info_.get()) return; + // If the SSLHostInfo hasn't managed to load from disk yet then we can't save + // anything. + if (ssl_host_info_->WaitForDataReady(NULL) != OK) + return; + SECStatus rv; SSLSnapStartResult snap_start_type; rv = SSL_GetSnapStartResult(nss_fd_, &snap_start_type); @@ -490,8 +495,6 @@ void SSLClientSocketNSS::SaveSnapStartInfo() { } net_log_.AddEvent(NetLog::TYPE_SSL_SNAP_START, new NetLogIntegerParameter("type", snap_start_type)); - LOG(ERROR) << "Snap Start: " << snap_start_type << " " - << host_and_port_.ToString(); if (snap_start_type == SSL_SNAP_START_FULL || snap_start_type == SSL_SNAP_START_RESUME) { // If we did a successful Snap Start then our information was correct and @@ -530,7 +533,6 @@ void SSLClientSocketNSS::SaveSnapStartInfo() { certs[i]->derCert.len)); } - LOG(ERROR) << "Setting Snap Start info " << host_and_port_.ToString(); ssl_host_info_->Persist(); } @@ -2478,6 +2480,7 @@ int SSLClientSocketNSS::DoVerifyCert(int result) { int SSLClientSocketNSS::DoVerifyCertComplete(int result) { verifier_.reset(); + if (!start_cert_verification_time_.is_null()) { base::TimeDelta verify_time = base::TimeTicks::Now() - start_cert_verification_time_; diff --git a/net/socket/ssl_client_socket_pool.cc b/net/socket/ssl_client_socket_pool.cc index deaf4f3..12c06ed 100644 --- a/net/socket/ssl_client_socket_pool.cc +++ b/net/socket/ssl_client_socket_pool.cc @@ -196,7 +196,7 @@ int SSLConnectJob::DoLoop(int result) { int SSLConnectJob::DoTCPConnect() { DCHECK(tcp_pool_); - if (ssl_host_info_factory_ && SSLConfigService::snap_start_enabled()) { + if (ssl_host_info_factory_) { ssl_host_info_.reset( ssl_host_info_factory_->GetForHost(params_->host_and_port().host(), params_->ssl_config())); diff --git a/net/socket/ssl_host_info.cc b/net/socket/ssl_host_info.cc index 527c2db..ccfe7a53 100644 --- a/net/socket/ssl_host_info.cc +++ b/net/socket/ssl_host_info.cc @@ -114,10 +114,10 @@ bool SSLHostInfo::ParseInner(const std::string& data) { VLOG(1) << "Kicking off verification for " << hostname_; verification_start_time_ = base::TimeTicks::Now(); verification_end_time_ = base::TimeTicks(); - if (verifier_.Verify(cert_.get(), hostname_, flags, - &cert_verify_result_, callback_) == OK) { - VerifyCallback(OK); - } + int rv = verifier_.Verify(cert_.get(), hostname_, flags, + &cert_verify_result_, callback_); + if (rv != ERR_IO_PENDING) + VerifyCallback(rv); } else { cert_parsing_failed_ = true; DCHECK(!cert_verification_callback_); |