| Index: net/quic/core/crypto/quic_crypto_server_config.cc
|
| diff --git a/net/quic/core/crypto/quic_crypto_server_config.cc b/net/quic/core/crypto/quic_crypto_server_config.cc
|
| index 27adc5d73bc54bea2385376a7b8081d666c8e987..dc5d4c0182295023fd80ac20585d8d063d85dffb 100644
|
| --- a/net/quic/core/crypto/quic_crypto_server_config.cc
|
| +++ b/net/quic/core/crypto/quic_crypto_server_config.cc
|
| @@ -81,11 +81,11 @@ IPAddress DualstackIPAddress(const IPAddress& ip) {
|
|
|
| class ValidateClientHelloHelper {
|
| public:
|
| - // Note: stores a pointer to a unique_ptr, and std::moves the unique_ptr when
|
| + // Note: stores pointers to unique_ptrs, and std::moves the unique_ptrs when
|
| // ValidationComplete is called.
|
| ValidateClientHelloHelper(
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result>* result,
|
| - ValidateClientHelloResultCallback* done_cb)
|
| + std::unique_ptr<ValidateClientHelloResultCallback>* done_cb)
|
| : result_(result), done_cb_(done_cb) {}
|
|
|
| ~ValidateClientHelloHelper() {
|
| @@ -99,7 +99,7 @@ class ValidateClientHelloHelper {
|
| std::unique_ptr<ProofSource::Details> proof_source_details) {
|
| (*result_)->error_code = error_code;
|
| (*result_)->error_details = error_details;
|
| - done_cb_->Run(std::move(*result_), std::move(proof_source_details));
|
| + (*done_cb_)->Run(std::move(*result_), std::move(proof_source_details));
|
| DetachCallback();
|
| }
|
|
|
| @@ -110,7 +110,7 @@ class ValidateClientHelloHelper {
|
|
|
| private:
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result>* result_;
|
| - ValidateClientHelloResultCallback* done_cb_;
|
| + std::unique_ptr<ValidateClientHelloResultCallback>* done_cb_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ValidateClientHelloHelper);
|
| };
|
| @@ -121,10 +121,10 @@ class VerifyNonceIsValidAndUniqueCallback
|
| VerifyNonceIsValidAndUniqueCallback(
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result> result,
|
| std::unique_ptr<ProofSource::Details> proof_source_details,
|
| - ValidateClientHelloResultCallback* done_cb)
|
| + std::unique_ptr<ValidateClientHelloResultCallback> done_cb)
|
| : result_(std::move(result)),
|
| proof_source_details_(std::move(proof_source_details)),
|
| - done_cb_(done_cb) {}
|
| + done_cb_(std::move(done_cb)) {}
|
|
|
| protected:
|
| void RunImpl(bool nonce_is_valid_and_unique,
|
| @@ -169,7 +169,7 @@ class VerifyNonceIsValidAndUniqueCallback
|
| private:
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result> result_;
|
| std::unique_ptr<ProofSource::Details> proof_source_details_;
|
| - ValidateClientHelloResultCallback* done_cb_;
|
| + std::unique_ptr<ValidateClientHelloResultCallback> done_cb_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(VerifyNonceIsValidAndUniqueCallback);
|
| };
|
| @@ -201,13 +201,6 @@ ValidateClientHelloResultCallback::ValidateClientHelloResultCallback() {}
|
|
|
| ValidateClientHelloResultCallback::~ValidateClientHelloResultCallback() {}
|
|
|
| -void ValidateClientHelloResultCallback::Run(
|
| - std::unique_ptr<Result> result,
|
| - std::unique_ptr<ProofSource::Details> details) {
|
| - RunImpl(std::move(result), std::move(details));
|
| - delete this;
|
| -}
|
| -
|
| QuicCryptoServerConfig::ConfigOptions::ConfigOptions()
|
| : expiry_time(QuicWallTime::Zero()),
|
| channel_id_enabled(false),
|
| @@ -504,7 +497,7 @@ void QuicCryptoServerConfig::ValidateClientHello(
|
| QuicVersion version,
|
| const QuicClock* clock,
|
| QuicCryptoProof* crypto_proof,
|
| - ValidateClientHelloResultCallback* done_cb) const {
|
| + std::unique_ptr<ValidateClientHelloResultCallback> done_cb) const {
|
| const QuicWallTime now(clock->WallNow());
|
|
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result> result(
|
| @@ -549,7 +542,7 @@ void QuicCryptoServerConfig::ValidateClientHello(
|
| }
|
| EvaluateClientHello(server_ip, version, primary_orbit, requested_config,
|
| primary_config, crypto_proof, std::move(result),
|
| - done_cb);
|
| + std::move(done_cb));
|
| } else {
|
| done_cb->Run(std::move(result), /* details = */ nullptr);
|
| }
|
| @@ -1007,7 +1000,7 @@ class EvaluateClientHelloCallback : public ProofSource::Callback {
|
| QuicCryptoProof* crypto_proof,
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result>
|
| client_hello_state,
|
| - ValidateClientHelloResultCallback* done_cb)
|
| + std::unique_ptr<ValidateClientHelloResultCallback> done_cb)
|
| : config_(config),
|
| found_error_(found_error),
|
| server_ip_(server_ip),
|
| @@ -1017,7 +1010,7 @@ class EvaluateClientHelloCallback : public ProofSource::Callback {
|
| primary_config_(std::move(primary_config)),
|
| crypto_proof_(crypto_proof),
|
| client_hello_state_(std::move(client_hello_state)),
|
| - done_cb_(done_cb) {}
|
| + done_cb_(std::move(done_cb)) {}
|
|
|
| void Run(bool ok,
|
| const scoped_refptr<ProofSource::Chain>& chain,
|
| @@ -1032,7 +1025,7 @@ class EvaluateClientHelloCallback : public ProofSource::Callback {
|
| config_.EvaluateClientHelloAfterGetProof(
|
| found_error_, server_ip_, version_, primary_orbit_, requested_config_,
|
| primary_config_, crypto_proof_, std::move(details), !ok,
|
| - std::move(client_hello_state_), done_cb_);
|
| + std::move(client_hello_state_), std::move(done_cb_));
|
| }
|
|
|
| private:
|
| @@ -1046,7 +1039,7 @@ class EvaluateClientHelloCallback : public ProofSource::Callback {
|
| QuicCryptoProof* crypto_proof_;
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result>
|
| client_hello_state_;
|
| - ValidateClientHelloResultCallback* done_cb_;
|
| + std::unique_ptr<ValidateClientHelloResultCallback> done_cb_;
|
| };
|
|
|
| void QuicCryptoServerConfig::EvaluateClientHello(
|
| @@ -1058,8 +1051,8 @@ void QuicCryptoServerConfig::EvaluateClientHello(
|
| QuicCryptoProof* crypto_proof,
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result>
|
| client_hello_state,
|
| - ValidateClientHelloResultCallback* done_cb) const {
|
| - ValidateClientHelloHelper helper(&client_hello_state, done_cb);
|
| + std::unique_ptr<ValidateClientHelloResultCallback> done_cb) const {
|
| + ValidateClientHelloHelper helper(&client_hello_state, &done_cb);
|
|
|
| const CryptoHandshakeMessage& client_hello = client_hello_state->client_hello;
|
| ClientHelloInfo* info = &(client_hello_state->info);
|
| @@ -1137,7 +1130,7 @@ void QuicCryptoServerConfig::EvaluateClientHello(
|
| new EvaluateClientHelloCallback(
|
| *this, found_error, server_ip, version, primary_orbit,
|
| requested_config, primary_config, crypto_proof,
|
| - std::move(client_hello_state), done_cb));
|
| + std::move(client_hello_state), std::move(done_cb)));
|
| proof_source_->GetProof(server_ip, info->sni.as_string(),
|
| serialized_config, version, chlo_hash,
|
| std::move(cb));
|
| @@ -1160,7 +1153,7 @@ void QuicCryptoServerConfig::EvaluateClientHello(
|
| EvaluateClientHelloAfterGetProof(
|
| found_error, server_ip, version, primary_orbit, requested_config,
|
| primary_config, crypto_proof, nullptr /* proof_source_details */,
|
| - get_proof_failed, std::move(client_hello_state), done_cb);
|
| + get_proof_failed, std::move(client_hello_state), std::move(done_cb));
|
| helper.DetachCallback();
|
| }
|
|
|
| @@ -1176,8 +1169,8 @@ void QuicCryptoServerConfig::EvaluateClientHelloAfterGetProof(
|
| bool get_proof_failed,
|
| std::unique_ptr<ValidateClientHelloResultCallback::Result>
|
| client_hello_state,
|
| - ValidateClientHelloResultCallback* done_cb) const {
|
| - ValidateClientHelloHelper helper(&client_hello_state, done_cb);
|
| + std::unique_ptr<ValidateClientHelloResultCallback> done_cb) const {
|
| + ValidateClientHelloHelper helper(&client_hello_state, &done_cb);
|
| const CryptoHandshakeMessage& client_hello = client_hello_state->client_hello;
|
| ClientHelloInfo* info = &(client_hello_state->info);
|
|
|
| @@ -1275,7 +1268,7 @@ void QuicCryptoServerConfig::EvaluateClientHelloAfterGetProof(
|
| info->client_nonce, info->now,
|
| new VerifyNonceIsValidAndUniqueCallback(std::move(client_hello_state),
|
| std::move(proof_source_details),
|
| - done_cb));
|
| + std::move(done_cb)));
|
| helper.DetachCallback();
|
| }
|
|
|
| @@ -1824,9 +1817,9 @@ void QuicCryptoServerConfig::set_enable_serving_sct(bool enable_serving_sct) {
|
| }
|
|
|
| void QuicCryptoServerConfig::AcquirePrimaryConfigChangedCb(
|
| - PrimaryConfigChangedCallback* cb) {
|
| + std::unique_ptr<PrimaryConfigChangedCallback> cb) {
|
| base::AutoLock locked(configs_lock_);
|
| - primary_config_changed_cb_.reset(cb);
|
| + primary_config_changed_cb_ = std::move(cb);
|
| }
|
|
|
| string QuicCryptoServerConfig::NewSourceAddressToken(
|
|
|