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/quic/quic_client_session.h" | 5 #include "net/quic/quic_client_session.h" |
6 | 6 |
7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
10 #include "base/metrics/sparse_histogram.h" | 10 #include "base/metrics/sparse_histogram.h" |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 | 421 |
422 ssl_info->public_key_hashes = cert_verify_result_->public_key_hashes; | 422 ssl_info->public_key_hashes = cert_verify_result_->public_key_hashes; |
423 ssl_info->is_issued_by_known_root = | 423 ssl_info->is_issued_by_known_root = |
424 cert_verify_result_->is_issued_by_known_root; | 424 cert_verify_result_->is_issued_by_known_root; |
425 | 425 |
426 ssl_info->connection_status = ssl_connection_status; | 426 ssl_info->connection_status = ssl_connection_status; |
427 ssl_info->client_cert_sent = false; | 427 ssl_info->client_cert_sent = false; |
428 ssl_info->channel_id_sent = crypto_stream_->WasChannelIDSent(); | 428 ssl_info->channel_id_sent = crypto_stream_->WasChannelIDSent(); |
429 ssl_info->security_bits = security_bits; | 429 ssl_info->security_bits = security_bits; |
430 ssl_info->handshake_type = SSLInfo::HANDSHAKE_FULL; | 430 ssl_info->handshake_type = SSLInfo::HANDSHAKE_FULL; |
| 431 ssl_info->pinning_failure_log = pinning_failure_log_; |
431 return true; | 432 return true; |
432 } | 433 } |
433 | 434 |
434 int QuicClientSession::CryptoConnect(bool require_confirmation, | 435 int QuicClientSession::CryptoConnect(bool require_confirmation, |
435 const CompletionCallback& callback) { | 436 const CompletionCallback& callback) { |
436 require_confirmation_ = require_confirmation; | 437 require_confirmation_ = require_confirmation; |
437 handshake_start_ = base::TimeTicks::Now(); | 438 handshake_start_ = base::TimeTicks::Now(); |
438 RecordHandshakeState(STATE_STARTED); | 439 RecordHandshakeState(STATE_STARTED); |
439 DCHECK(flow_controller()); | 440 DCHECK(flow_controller()); |
440 if (!crypto_stream_->CryptoConnect()) { | 441 if (!crypto_stream_->CryptoConnect()) { |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 state->server_config = cached.server_config(); | 661 state->server_config = cached.server_config(); |
661 state->source_address_token = cached.source_address_token(); | 662 state->source_address_token = cached.source_address_token(); |
662 state->server_config_sig = cached.signature(); | 663 state->server_config_sig = cached.signature(); |
663 state->certs = cached.certs(); | 664 state->certs = cached.certs(); |
664 | 665 |
665 server_info_->Persist(); | 666 server_info_->Persist(); |
666 } | 667 } |
667 | 668 |
668 void QuicClientSession::OnProofVerifyDetailsAvailable( | 669 void QuicClientSession::OnProofVerifyDetailsAvailable( |
669 const ProofVerifyDetails& verify_details) { | 670 const ProofVerifyDetails& verify_details) { |
670 const CertVerifyResult* cert_verify_result_other = | 671 const ProofVerifyDetailsChromium* verify_details_chromium = |
671 &(reinterpret_cast<const ProofVerifyDetailsChromium*>( | 672 reinterpret_cast<const ProofVerifyDetailsChromium*>(&verify_details); |
672 &verify_details))->cert_verify_result; | |
673 CertVerifyResult* result_copy = new CertVerifyResult; | 673 CertVerifyResult* result_copy = new CertVerifyResult; |
674 result_copy->CopyFrom(*cert_verify_result_other); | 674 result_copy->CopyFrom(verify_details_chromium->cert_verify_result); |
675 cert_verify_result_.reset(result_copy); | 675 cert_verify_result_.reset(result_copy); |
| 676 pinning_failure_log_ = verify_details_chromium->pinning_failure_log; |
676 logger_->OnCertificateVerified(*cert_verify_result_); | 677 logger_->OnCertificateVerified(*cert_verify_result_); |
677 } | 678 } |
678 | 679 |
679 void QuicClientSession::StartReading() { | 680 void QuicClientSession::StartReading() { |
680 if (read_pending_) { | 681 if (read_pending_) { |
681 return; | 682 return; |
682 } | 683 } |
683 read_pending_ = true; | 684 read_pending_ = true; |
684 int rv = socket_->Read(read_buffer_.get(), | 685 int rv = socket_->Read(read_buffer_.get(), |
685 read_buffer_->size(), | 686 read_buffer_->size(), |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 return; | 857 return; |
857 | 858 |
858 // TODO(rch): re-enable this code once beta is cut. | 859 // TODO(rch): re-enable this code once beta is cut. |
859 // if (stream_factory_) | 860 // if (stream_factory_) |
860 // stream_factory_->OnSessionConnectTimeout(this); | 861 // stream_factory_->OnSessionConnectTimeout(this); |
861 // CloseAllStreams(ERR_QUIC_HANDSHAKE_FAILED); | 862 // CloseAllStreams(ERR_QUIC_HANDSHAKE_FAILED); |
862 // DCHECK_EQ(0u, GetNumOpenStreams()); | 863 // DCHECK_EQ(0u, GetNumOpenStreams()); |
863 } | 864 } |
864 | 865 |
865 } // namespace net | 866 } // namespace net |
OLD | NEW |