Index: net/quic/quic_stream_factory.h |
diff --git a/net/quic/quic_stream_factory.h b/net/quic/quic_stream_factory.h |
index 48f4da0de4e80fa388b2b0e98035df9548d6711d..629b835704f23c2433ba9965c6fb57b5b6a56b17 100644 |
--- a/net/quic/quic_stream_factory.h |
+++ b/net/quic/quic_stream_factory.h |
@@ -14,6 +14,8 @@ |
#include "net/base/host_port_pair.h" |
#include "net/base/net_log.h" |
#include "net/proxy/proxy_server.h" |
+#include "net/quic/quic_config.h" |
+#include "net/quic/quic_crypto_stream.h" |
#include "net/quic/quic_http_stream.h" |
#include "net/quic/quic_protocol.h" |
@@ -106,6 +108,7 @@ class NET_EXPORT_PRIVATE QuicStreamFactory { |
typedef std::set<HostPortProxyPair> AliasSet; |
typedef std::map<QuicClientSession*, AliasSet> SessionAliasMap; |
typedef std::set<QuicClientSession*> SessionSet; |
+ typedef std::map<HostPortProxyPair, QuicCryptoClientConfig*> CryptoConfigMap; |
typedef std::map<HostPortProxyPair, Job*> JobMap; |
typedef std::map<QuicStreamRequest*, Job*> RequestMap; |
typedef std::set<QuicStreamRequest*> RequestSet; |
@@ -114,12 +117,16 @@ class NET_EXPORT_PRIVATE QuicStreamFactory { |
void OnJobComplete(Job* job, int rv); |
bool HasActiveSession(const HostPortProxyPair& host_port_proxy_pair); |
bool HasActiveJob(const HostPortProxyPair& host_port_proxy_pair); |
- QuicClientSession* CreateSession(const std::string& host, |
- const AddressList& address_list, |
- const BoundNetLog& net_log); |
+ QuicClientSession* CreateSession( |
+ const HostPortProxyPair& host_port_proxy_pair, |
+ const AddressList& address_list, |
+ const BoundNetLog& net_log); |
void ActivateSession(const HostPortProxyPair& host_port_proxy_pair, |
QuicClientSession* session); |
+ QuicCryptoClientConfig* GetOrCreateCryptoConfig( |
+ const HostPortProxyPair& host_port_proxy_pair); |
+ |
HostResolver* host_resolver_; |
ClientSocketFactory* client_socket_factory_; |
QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory_; |
@@ -133,6 +140,12 @@ class NET_EXPORT_PRIVATE QuicStreamFactory { |
SessionMap active_sessions_; |
SessionAliasMap session_aliases_; |
+ // Contains owning pointers to QuicCryptoClientConfig. QuicCryptoClientConfig |
+ // contains configuration and cached state about servers. |
+ // TODO(rtenneti): Persist all_crypto_configs_ to disk and decide when to |
+ // clear the data in the map. |
+ CryptoConfigMap all_crypto_configs_; |
+ |
JobMap active_jobs_; |
JobRequestsMap job_requests_map_; |
RequestMap active_requests_; |