diff options
Diffstat (limited to 'net/quic/quic_client_session.cc')
-rw-r--r-- | net/quic/quic_client_session.cc | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/net/quic/quic_client_session.cc b/net/quic/quic_client_session.cc index c6699f1..b136724 100644 --- a/net/quic/quic_client_session.cc +++ b/net/quic/quic_client_session.cc @@ -13,6 +13,7 @@ #include "base/values.h" #include "net/base/io_buffer.h" #include "net/base/net_errors.h" +#include "net/http/transport_security_state.h" #include "net/quic/crypto/proof_verifier_chromium.h" #include "net/quic/crypto/quic_server_info.h" #include "net/quic/quic_connection_helper.h" @@ -20,6 +21,7 @@ #include "net/quic/quic_default_packet_writer.h" #include "net/quic/quic_server_id.h" #include "net/quic/quic_stream_factory.h" +#include "net/spdy/spdy_session.h" #include "net/ssl/channel_id_service.h" #include "net/ssl/ssl_connection_status_flags.h" #include "net/ssl/ssl_info.h" @@ -138,6 +140,7 @@ QuicClientSession::QuicClientSession( scoped_ptr<QuicDefaultPacketWriter> writer, QuicStreamFactory* stream_factory, QuicCryptoClientStreamFactory* crypto_client_stream_factory, + TransportSecurityState* transport_security_state, scoped_ptr<QuicServerInfo> server_info, const QuicServerId& server_id, const QuicConfig& config, @@ -151,6 +154,7 @@ QuicClientSession::QuicClientSession( socket_(socket.Pass()), writer_(writer.Pass()), read_buffer_(new IOBufferWithSize(kMaxPacketSize)), + transport_security_state_(transport_security_state), server_info_(server_info.Pass()), read_pending_(false), num_total_streams_(0), @@ -489,28 +493,8 @@ bool QuicClientSession::CanPool(const std::string& hostname) const { return true; } - // Disable pooling for secure sessions. - // TODO(rch): re-enable this. - return false; -#if 0 - bool unused = false; - // Pooling is prohibited if the server cert is not valid for the new domain, - // and for connections on which client certs were sent. It is also prohibited - // when channel ID was sent if the hosts are from different eTLDs+1. - if (!ssl_info.cert->VerifyNameMatch(hostname, &unused)) - return false; - - if (ssl_info.client_cert_sent) - return false; - - if (ssl_info.channel_id_sent && - ChannelIDService::GetDomainForHost(hostname) != - ChannelIDService::GetDomainForHost(server_host_port_.host())) { - return false; - } - - return true; -#endif + return SpdySession::CanPool(transport_security_state_, ssl_info, + server_host_port_.host(), hostname); } QuicDataStream* QuicClientSession::CreateIncomingDataStream( |