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

Side by Side Diff: net/quic/core/quic_crypto_server_stream.h

Issue 2353763002: Use refcounted ownership for ValidateClientHelloResultCallback::Result (Closed)
Patch Set: Created 4 years, 3 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
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_CRYPTO_SERVER_STREAM_H_ 5 #ifndef NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_
6 #define NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ 6 #define NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_
7 7
8 #include <cstdint> 8 #include <cstdint>
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 const CachedNetworkParameters* PreviousCachedNetworkParams() const override; 118 const CachedNetworkParameters* PreviousCachedNetworkParams() const override;
119 bool UseStatelessRejectsIfPeerSupported() const override; 119 bool UseStatelessRejectsIfPeerSupported() const override;
120 bool PeerSupportsStatelessRejects() const override; 120 bool PeerSupportsStatelessRejects() const override;
121 void SetPeerSupportsStatelessRejects( 121 void SetPeerSupportsStatelessRejects(
122 bool peer_supports_stateless_rejects) override; 122 bool peer_supports_stateless_rejects) override;
123 void SetPreviousCachedNetworkParams( 123 void SetPreviousCachedNetworkParams(
124 CachedNetworkParameters cached_network_params) override; 124 CachedNetworkParameters cached_network_params) override;
125 125
126 protected: 126 protected:
127 virtual QuicErrorCode ProcessClientHello( 127 virtual QuicErrorCode ProcessClientHello(
128 const ValidateClientHelloResultCallback::Result& result, 128 scoped_refptr<ValidateClientHelloResultCallback::Result> result,
129 std::unique_ptr<ProofSource::Details> proof_source_details, 129 std::unique_ptr<ProofSource::Details> proof_source_details,
130 CryptoHandshakeMessage* reply, 130 CryptoHandshakeMessage* reply,
131 DiversificationNonce* out_diversification_nonce, 131 DiversificationNonce* out_diversification_nonce,
132 std::string* error_details); 132 std::string* error_details);
133 133
134 // Hook that allows the server to set QuicConfig defaults just 134 // Hook that allows the server to set QuicConfig defaults just
135 // before going through the parameter negotiation step. 135 // before going through the parameter negotiation step.
136 virtual void OverrideQuicConfigDefaults(QuicConfig* config); 136 virtual void OverrideQuicConfigDefaults(QuicConfig* config);
137 137
138 private: 138 private:
139 friend class test::CryptoTestUtils; 139 friend class test::CryptoTestUtils;
140 friend class test::QuicCryptoServerStreamPeer; 140 friend class test::QuicCryptoServerStreamPeer;
141 141
142 class ValidateCallback : public ValidateClientHelloResultCallback { 142 class ValidateCallback : public ValidateClientHelloResultCallback {
143 public: 143 public:
144 explicit ValidateCallback(QuicCryptoServerStream* parent); 144 explicit ValidateCallback(QuicCryptoServerStream* parent);
145 // To allow the parent to detach itself from the callback before deletion. 145 // To allow the parent to detach itself from the callback before deletion.
146 void Cancel(); 146 void Cancel();
147 147
148 // From ValidateClientHelloResultCallback 148 // From ValidateClientHelloResultCallback
149 void Run(std::unique_ptr<Result> result, 149 void Run(scoped_refptr<Result> result,
150 std::unique_ptr<ProofSource::Details> details) override; 150 std::unique_ptr<ProofSource::Details> details) override;
151 151
152 private: 152 private:
153 QuicCryptoServerStream* parent_; 153 QuicCryptoServerStream* parent_;
154 154
155 DISALLOW_COPY_AND_ASSIGN(ValidateCallback); 155 DISALLOW_COPY_AND_ASSIGN(ValidateCallback);
156 }; 156 };
157 157
158 class SendServerConfigUpdateCallback 158 class SendServerConfigUpdateCallback
159 : public BuildServerConfigUpdateMessageResultCallback { 159 : public BuildServerConfigUpdateMessageResultCallback {
(...skipping 10 matching lines...) Expand all
170 void Run(bool ok, const CryptoHandshakeMessage& message) override; 170 void Run(bool ok, const CryptoHandshakeMessage& message) override;
171 171
172 private: 172 private:
173 QuicCryptoServerStream* parent_; 173 QuicCryptoServerStream* parent_;
174 }; 174 };
175 175
176 // Invoked by ValidateCallback::RunImpl once initial validation of 176 // Invoked by ValidateCallback::RunImpl once initial validation of
177 // the client hello is complete. Finishes processing of the client 177 // the client hello is complete. Finishes processing of the client
178 // hello message and handles handshake success/failure. 178 // hello message and handles handshake success/failure.
179 void FinishProcessingHandshakeMessage( 179 void FinishProcessingHandshakeMessage(
180 const ValidateClientHelloResultCallback::Result& result, 180 scoped_refptr<ValidateClientHelloResultCallback::Result> result,
181 std::unique_ptr<ProofSource::Details> details); 181 std::unique_ptr<ProofSource::Details> details);
182 182
183 // Invoked by SendServerConfigUpdateCallback::RunImpl once the proof has been 183 // Invoked by SendServerConfigUpdateCallback::RunImpl once the proof has been
184 // received. |ok| indicates whether or not the proof was successfully 184 // received. |ok| indicates whether or not the proof was successfully
185 // acquired, and |message| holds the partially-constructed message from 185 // acquired, and |message| holds the partially-constructed message from
186 // SendServerConfigUpdate. 186 // SendServerConfigUpdate.
187 void FinishSendServerConfigUpdate(bool ok, 187 void FinishSendServerConfigUpdate(bool ok,
188 const CryptoHandshakeMessage& message); 188 const CryptoHandshakeMessage& message);
189 189
190 // Returns a new ConnectionId to be used for statelessly rejected connections 190 // Returns a new ConnectionId to be used for statelessly rejected connections
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 253
254 // Size of the packet containing the most recently received CHLO. 254 // Size of the packet containing the most recently received CHLO.
255 QuicByteCount chlo_packet_size_; 255 QuicByteCount chlo_packet_size_;
256 256
257 DISALLOW_COPY_AND_ASSIGN(QuicCryptoServerStream); 257 DISALLOW_COPY_AND_ASSIGN(QuicCryptoServerStream);
258 }; 258 };
259 259
260 } // namespace net 260 } // namespace net
261 261
262 #endif // NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ 262 #endif // NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698