Chromium Code Reviews| Index: net/quic/quic_crypto_client_stream.h |
| diff --git a/net/quic/quic_crypto_client_stream.h b/net/quic/quic_crypto_client_stream.h |
| index 4686fedf1a6c963409d9464601e1693419c42989..6250b26584a17b64d4c5f26b20cfb7d5c278123f 100644 |
| --- a/net/quic/quic_crypto_client_stream.h |
| +++ b/net/quic/quic_crypto_client_stream.h |
| @@ -15,6 +15,8 @@ |
| namespace net { |
| +class ProofVerifierCallbackClientStream; |
| +class ProofVerifyDetails; |
| class QuicSession; |
| class SSLInfo; |
| @@ -48,6 +50,7 @@ class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream { |
| private: |
| friend class test::CryptoTestUtils; |
| + friend class ProofVerifierCallbackClientStream; |
| enum State { |
| STATE_IDLE, |
| @@ -59,17 +62,8 @@ class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream { |
| }; |
| // DoHandshakeLoop performs a step of the handshake state machine. Note that |
| - // |in| is NULL for the first call. OnVerifyProofComplete passes the |result| |
| - // it has received from VerifyProof call (from all other places |result| is |
| - // set to OK). |
| - void DoHandshakeLoop(const CryptoHandshakeMessage* in, int result); |
| - |
| - // OnVerifyProofComplete is passed as the callback method to VerifyProof. |
| - // ProofVerifier calls this method with the result of proof verification when |
| - // verification is performed asynchronously. |
| - void OnVerifyProofComplete(int result); |
| - |
| - base::WeakPtrFactory<QuicCryptoClientStream> weak_factory_; |
| + // |in| may be NULL if the call did not result from a received message |
| + void DoHandshakeLoop(const CryptoHandshakeMessage* in); |
| State next_state_; |
| // num_client_hellos_ contains the number of client hello messages that this |
| @@ -86,13 +80,15 @@ class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream { |
| // Generation counter from QuicCryptoClientConfig's CachedState. |
| uint64 generation_counter_; |
| - // The result of certificate verification. |
| - // TODO(rtenneti): should we change CertVerifyResult to be |
| - // RefCountedThreadSafe object to avoid copying. |
| - CertVerifyResult cert_verify_result_; |
| + // proof_verify_callback_ contains the callback object that we passed to an |
| + // asynchronous proof verification. The ProofVerifier owns this object. |
| + ProofVerifierCallbackClientStream* proof_verify_callback_; |
|
Ryan Hamilton
2013/07/23 18:40:50
nit: I don't think I understand the meaning of the
agl
2013/07/23 21:04:57
It's the implementation of a callback object that
Ryan Hamilton
2013/07/23 21:19:16
Love it!
|
| - // Error details for ProofVerifier's VerifyProof call. |
| - std::string error_details_; |
| + // These members are used to store the result of an asynchronous proof |
| + // verification. |
| + bool verify_ok_; |
| + string verify_error_details_; |
| + scoped_ptr<ProofVerifyDetails> verify_details_; |
| DISALLOW_COPY_AND_ASSIGN(QuicCryptoClientStream); |
| }; |