Index: net/quic/core/quic_crypto_server_stream.cc |
diff --git a/net/quic/core/quic_crypto_server_stream.cc b/net/quic/core/quic_crypto_server_stream.cc |
index 8de966b02e20823b25787a52c991f12e6fd52327..6f434184f4e58f90f5f038134728962ad13b9353 100644 |
--- a/net/quic/core/quic_crypto_server_stream.cc |
+++ b/net/quic/core/quic_crypto_server_stream.cc |
@@ -115,18 +115,19 @@ void QuicCryptoServerStream::OnHandshakeMessage( |
CryptoUtils::HashHandshakeMessage(message, &chlo_hash_); |
- validate_client_hello_cb_ = new ValidateCallback(this); |
+ std::unique_ptr<ValidateCallback> cb(new ValidateCallback(this)); |
+ validate_client_hello_cb_ = cb.get(); |
crypto_config_->ValidateClientHello( |
message, session()->connection()->peer_address().address(), |
session()->connection()->self_address().address(), version(), |
- session()->connection()->clock(), &crypto_proof_, |
- validate_client_hello_cb_); |
+ session()->connection()->clock(), &crypto_proof_, std::move(cb)); |
} |
void QuicCryptoServerStream::FinishProcessingHandshakeMessage( |
- const CryptoHandshakeMessage& message, |
const ValidateClientHelloResultCallback::Result& result, |
std::unique_ptr<ProofSource::Details> details) { |
+ const CryptoHandshakeMessage& message = result.client_hello; |
+ |
// Clear the callback that got us here. |
DCHECK(validate_client_hello_cb_ != nullptr); |
validate_client_hello_cb_ = nullptr; |
@@ -139,7 +140,7 @@ void QuicCryptoServerStream::FinishProcessingHandshakeMessage( |
DiversificationNonce diversification_nonce; |
string error_details; |
QuicErrorCode error = |
- ProcessClientHello(message, result, std::move(details), &reply, |
+ ProcessClientHello(result, std::move(details), &reply, |
&diversification_nonce, &error_details); |
if (error != QUIC_NO_ERROR) { |
@@ -379,12 +380,12 @@ bool QuicCryptoServerStream::GetBase64SHA256ClientChannelID( |
} |
QuicErrorCode QuicCryptoServerStream::ProcessClientHello( |
- const CryptoHandshakeMessage& message, |
const ValidateClientHelloResultCallback::Result& result, |
std::unique_ptr<ProofSource::Details> proof_source_details, |
CryptoHandshakeMessage* reply, |
DiversificationNonce* out_diversification_nonce, |
string* error_details) { |
+ const CryptoHandshakeMessage& message = result.client_hello; |
if (!helper_->CanAcceptClientHello( |
message, session()->connection()->self_address(), error_details)) { |
return QUIC_HANDSHAKE_FAILED; |
@@ -427,13 +428,11 @@ void QuicCryptoServerStream::ValidateCallback::Cancel() { |
parent_ = nullptr; |
} |
-void QuicCryptoServerStream::ValidateCallback::RunImpl( |
- const CryptoHandshakeMessage& client_hello, |
- const Result& result, |
+void QuicCryptoServerStream::ValidateCallback::Run( |
+ std::unique_ptr<Result> result, |
std::unique_ptr<ProofSource::Details> details) { |
if (parent_ != nullptr) { |
- parent_->FinishProcessingHandshakeMessage(client_hello, result, |
- std::move(details)); |
+ parent_->FinishProcessingHandshakeMessage(*result, std::move(details)); |
} |
} |