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

Side by Side Diff: net/quic/quic_stream_factory.h

Issue 23279011: Require handshake confirmation until a QUIC connection is created succesfully when using a new netw… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Created 7 years, 4 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 #ifndef NET_QUIC_QUIC_STREAM_FACTORY_H_ 5 #ifndef NET_QUIC_QUIC_STREAM_FACTORY_H_
6 #define NET_QUIC_QUIC_STREAM_FACTORY_H_ 6 #define NET_QUIC_QUIC_STREAM_FACTORY_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 void CloseAllSessions(int error); 115 void CloseAllSessions(int error);
116 116
117 base::Value* QuicStreamFactoryInfoToValue() const; 117 base::Value* QuicStreamFactoryInfoToValue() const;
118 118
119 // NetworkChangeNotifier::IPAddressObserver methods: 119 // NetworkChangeNotifier::IPAddressObserver methods:
120 120
121 // Until the servers support roaming, close all connections when the local 121 // Until the servers support roaming, close all connections when the local
122 // IP address changes. 122 // IP address changes.
123 virtual void OnIPAddressChanged() OVERRIDE; 123 virtual void OnIPAddressChanged() OVERRIDE;
124 124
125 bool require_confirmation() const { return require_confirmation_; }
126
127 void set_require_confirmation(bool require_confirmation) {
128 require_confirmation_ = require_confirmation;
129 }
130
125 private: 131 private:
126 class Job; 132 class Job;
127 133
128 typedef std::map<HostPortProxyPair, QuicClientSession*> SessionMap; 134 typedef std::map<HostPortProxyPair, QuicClientSession*> SessionMap;
129 typedef std::set<HostPortProxyPair> AliasSet; 135 typedef std::set<HostPortProxyPair> AliasSet;
130 typedef std::map<QuicClientSession*, AliasSet> SessionAliasMap; 136 typedef std::map<QuicClientSession*, AliasSet> SessionAliasMap;
131 typedef std::set<QuicClientSession*> SessionSet; 137 typedef std::set<QuicClientSession*> SessionSet;
132 typedef std::map<HostPortProxyPair, QuicCryptoClientConfig*> CryptoConfigMap; 138 typedef std::map<HostPortProxyPair, QuicCryptoClientConfig*> CryptoConfigMap;
133 typedef std::map<HostPortProxyPair, Job*> JobMap; 139 typedef std::map<HostPortProxyPair, Job*> JobMap;
134 typedef std::map<QuicStreamRequest*, Job*> RequestMap; 140 typedef std::map<QuicStreamRequest*, Job*> RequestMap;
135 typedef std::set<QuicStreamRequest*> RequestSet; 141 typedef std::set<QuicStreamRequest*> RequestSet;
136 typedef std::map<Job*, RequestSet> JobRequestsMap; 142 typedef std::map<Job*, RequestSet> JobRequestsMap;
137 143
138 void OnJobComplete(Job* job, int rv); 144 void OnJobComplete(Job* job, int rv);
139 bool HasActiveSession(const HostPortProxyPair& host_port_proxy_pair); 145 bool HasActiveSession(const HostPortProxyPair& host_port_proxy_pair);
140 bool HasActiveJob(const HostPortProxyPair& host_port_proxy_pair); 146 bool HasActiveJob(const HostPortProxyPair& host_port_proxy_pair);
141 QuicClientSession* CreateSession( 147 QuicClientSession* CreateSession(
142 const HostPortProxyPair& host_port_proxy_pair, 148 const HostPortProxyPair& host_port_proxy_pair,
143 bool is_https, 149 bool is_https,
144 CertVerifier* cert_verifier, 150 CertVerifier* cert_verifier,
145 const AddressList& address_list, 151 const AddressList& address_list,
146 const BoundNetLog& net_log); 152 const BoundNetLog& net_log);
147 void ActivateSession(const HostPortProxyPair& host_port_proxy_pair, 153 void ActivateSession(const HostPortProxyPair& host_port_proxy_pair,
148 QuicClientSession* session); 154 QuicClientSession* session);
149 155
150 QuicCryptoClientConfig* GetOrCreateCryptoConfig( 156 QuicCryptoClientConfig* GetOrCreateCryptoConfig(
151 const HostPortProxyPair& host_port_proxy_pair); 157 const HostPortProxyPair& host_port_proxy_pair);
152 158
159 bool require_confirmation_;
153 HostResolver* host_resolver_; 160 HostResolver* host_resolver_;
154 ClientSocketFactory* client_socket_factory_; 161 ClientSocketFactory* client_socket_factory_;
155 base::WeakPtr<HttpServerProperties> http_server_properties_; 162 base::WeakPtr<HttpServerProperties> http_server_properties_;
156 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory_; 163 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory_;
157 QuicRandom* random_generator_; 164 QuicRandom* random_generator_;
158 scoped_ptr<QuicClock> clock_; 165 scoped_ptr<QuicClock> clock_;
159 166
160 // Contains owning pointers to all sessions that currently exist. 167 // Contains owning pointers to all sessions that currently exist.
161 SessionSet all_sessions_; 168 SessionSet all_sessions_;
162 // Contains non-owning pointers to currently active session 169 // Contains non-owning pointers to currently active session
(...skipping 14 matching lines...) Expand all
177 RequestMap active_requests_; 184 RequestMap active_requests_;
178 185
179 base::WeakPtrFactory<QuicStreamFactory> weak_factory_; 186 base::WeakPtrFactory<QuicStreamFactory> weak_factory_;
180 187
181 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory); 188 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory);
182 }; 189 };
183 190
184 } // namespace net 191 } // namespace net
185 192
186 #endif // NET_QUIC_QUIC_STREAM_FACTORY_H_ 193 #endif // NET_QUIC_QUIC_STREAM_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698