Uniquify QuicCryptoServerConfig::Add[Default]Config
gfe-relnote: Use unique_ptr for memory management rather than bare pointer. No functional change intended, not flag-protected.
PiperOrigin-RevId: 238574036
Change-Id: I0bb803fb9d68925ecbfdf113ba70335a66b3f099
diff --git a/quic/core/crypto/crypto_server_test.cc b/quic/core/crypto/crypto_server_test.cc
index d654c4a..3b5a8f6 100644
--- a/quic/core/crypto/crypto_server_test.cc
+++ b/quic/core/crypto/crypto_server_test.cc
@@ -133,7 +133,7 @@
void SetUp() override {
QuicCryptoServerConfig::ConfigOptions old_config_options;
old_config_options.id = kOldConfigId;
- delete config_.AddDefaultConfig(rand_, &clock_, old_config_options);
+ config_.AddDefaultConfig(rand_, &clock_, old_config_options);
clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1000));
std::unique_ptr<QuicServerConfigProtobuf> primary_config(
config_.GenerateConfig(rand_, &clock_, config_options_));
diff --git a/quic/core/crypto/quic_crypto_server_config.cc b/quic/core/crypto/quic_crypto_server_config.cc
index e1386b4..ccb7691 100644
--- a/quic/core/crypto/quic_crypto_server_config.cc
+++ b/quic/core/crypto/quic_crypto_server_config.cc
@@ -340,11 +340,11 @@
return config;
}
-CryptoHandshakeMessage* QuicCryptoServerConfig::AddConfig(
+std::unique_ptr<CryptoHandshakeMessage> QuicCryptoServerConfig::AddConfig(
std::unique_ptr<QuicServerConfigProtobuf> protobuf,
const QuicWallTime now) {
- std::unique_ptr<CryptoHandshakeMessage> msg(
- CryptoFramer::ParseMessage(protobuf->config()));
+ std::unique_ptr<CryptoHandshakeMessage> msg =
+ CryptoFramer::ParseMessage(protobuf->config());
if (!msg.get()) {
QUIC_LOG(WARNING) << "Failed to parse server config message";
@@ -373,13 +373,13 @@
primary_config_.get());
}
- return msg.release();
+ return msg;
}
-CryptoHandshakeMessage* QuicCryptoServerConfig::AddDefaultConfig(
- QuicRandom* rand,
- const QuicClock* clock,
- const ConfigOptions& options) {
+std::unique_ptr<CryptoHandshakeMessage>
+QuicCryptoServerConfig::AddDefaultConfig(QuicRandom* rand,
+ const QuicClock* clock,
+ const ConfigOptions& options) {
return AddConfig(GenerateConfig(rand, clock, options), clock->WallNow());
}
diff --git a/quic/core/crypto/quic_crypto_server_config.h b/quic/core/crypto/quic_crypto_server_config.h
index 546b0e7..fc05fb3 100644
--- a/quic/core/crypto/quic_crypto_server_config.h
+++ b/quic/core/crypto/quic_crypto_server_config.h
@@ -209,8 +209,8 @@
// |server_nonce_entropy|: an entropy source used to generate the orbit and
// key for server nonces, which are always local to a given instance of a
// server. Not owned.
- // |proof_source|: provides certificate chains and signatures. This class
- // takes ownership of |proof_source|.
+ // |proof_source|: provides certificate chains and signatures.
+ // |key_exchange_source|: provides key-exchange functionality.
// |ssl_ctx|: The SSL_CTX used for doing TLS handshakes.
QuicCryptoServerConfig(QuicStringPiece source_address_token_secret,
QuicRandom* server_nonce_entropy,
@@ -232,20 +232,20 @@
const ConfigOptions& options);
// AddConfig adds a QuicServerConfigProtobuf to the available configurations.
- // It returns the SCFG message from the config if successful. The caller
- // takes ownership of the CryptoHandshakeMessage. |now| is used in
+ // It returns the SCFG message from the config if successful. |now| is used in
// conjunction with |protobuf->primary_time()| to determine whether the
// config should be made primary.
- CryptoHandshakeMessage* AddConfig(
+ std::unique_ptr<CryptoHandshakeMessage> AddConfig(
std::unique_ptr<QuicServerConfigProtobuf> protobuf,
QuicWallTime now);
// AddDefaultConfig calls DefaultConfig to create a config and then calls
// AddConfig to add it. See the comment for |DefaultConfig| for details of
// the arguments.
- CryptoHandshakeMessage* AddDefaultConfig(QuicRandom* rand,
- const QuicClock* clock,
- const ConfigOptions& options);
+ std::unique_ptr<CryptoHandshakeMessage> AddDefaultConfig(
+ QuicRandom* rand,
+ const QuicClock* clock,
+ const ConfigOptions& options);
// SetConfigs takes a vector of config protobufs and the current time.
// Configs are assumed to be uniquely identified by their server config ID.
diff --git a/quic/core/crypto/quic_crypto_server_config_test.cc b/quic/core/crypto/quic_crypto_server_config_test.cc
index 7f9c3fe..f8e4861 100644
--- a/quic/core/crypto/quic_crypto_server_config_test.cc
+++ b/quic/core/crypto/quic_crypto_server_config_test.cc
@@ -158,8 +158,8 @@
clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1000000));
original_time_ = clock_.WallNow();
- primary_config_.reset(server_.AddDefaultConfig(
- rand_, &clock_, QuicCryptoServerConfig::ConfigOptions()));
+ primary_config_ = server_.AddDefaultConfig(
+ rand_, &clock_, QuicCryptoServerConfig::ConfigOptions());
}
std::string NewSourceAddressToken(std::string config_id,
diff --git a/quic/core/http/quic_server_session_base_test.cc b/quic/core/http/quic_server_session_base_test.cc
index a6fb4e2..ed375fa 100644
--- a/quic/core/http/quic_server_session_base_test.cc
+++ b/quic/core/http/quic_server_session_base_test.cc
@@ -147,9 +147,9 @@
config_, connection_, &owner_, &stream_helper_, &crypto_config_,
&compressed_certs_cache_, &memory_cache_backend_);
MockClock clock;
- handshake_message_.reset(crypto_config_.AddDefaultConfig(
+ handshake_message_ = crypto_config_.AddDefaultConfig(
QuicRandom::GetInstance(), &clock,
- QuicCryptoServerConfig::ConfigOptions()));
+ QuicCryptoServerConfig::ConfigOptions());
session_->Initialize();
QuicSessionPeer::GetMutableCryptoStream(session_.get())
->OnSuccessfulVersionNegotiation(supported_versions.front());
diff --git a/quic/test_tools/crypto_test_utils.cc b/quic/test_tools/crypto_test_utils.cc
index 78bbc4e..94ca8e1 100644
--- a/quic/test_tools/crypto_test_utils.cc
+++ b/quic/test_tools/crypto_test_utils.cc
@@ -502,8 +502,8 @@
QuicCryptoServerConfig::ConfigOptions options;
options.channel_id_enabled = true;
options.token_binding_params = fake_options.token_binding_params;
- std::unique_ptr<CryptoHandshakeMessage> scfg(
- crypto_config->AddDefaultConfig(rand, clock, options));
+ std::unique_ptr<CryptoHandshakeMessage> scfg =
+ crypto_config->AddDefaultConfig(rand, clock, options);
}
void SendHandshakeMessageToStream(QuicCryptoStream* stream,
@@ -1006,14 +1006,14 @@
QuicCryptoServerConfig::ConfigOptions old_config_options;
QuicCryptoServerConfig::ConfigOptions new_config_options;
old_config_options.id = "old-config-id";
- delete crypto_config->AddDefaultConfig(QuicRandom::GetInstance(), clock,
- old_config_options);
- std::unique_ptr<QuicServerConfigProtobuf> primary_config(
+ crypto_config->AddDefaultConfig(QuicRandom::GetInstance(), clock,
+ old_config_options);
+ std::unique_ptr<QuicServerConfigProtobuf> primary_config =
crypto_config->GenerateConfig(QuicRandom::GetInstance(), clock,
- new_config_options));
+ new_config_options);
primary_config->set_primary_time(clock->WallNow().ToUNIXSeconds());
- std::unique_ptr<CryptoHandshakeMessage> msg(
- crypto_config->AddConfig(std::move(primary_config), clock->WallNow()));
+ std::unique_ptr<CryptoHandshakeMessage> msg =
+ crypto_config->AddConfig(std::move(primary_config), clock->WallNow());
QuicStringPiece orbit;
CHECK(msg->GetStringPiece(kORBT, &orbit));
std::string nonce;
diff --git a/quic/test_tools/crypto_test_utils_test.cc b/quic/test_tools/crypto_test_utils_test.cc
index 19fdfbb..ff288d9 100644
--- a/quic/test_tools/crypto_test_utils_test.cc
+++ b/quic/test_tools/crypto_test_utils_test.cc
@@ -124,15 +124,15 @@
QuicCryptoServerConfig::ConfigOptions old_config_options;
old_config_options.id = "old-config-id";
- delete crypto_config.AddDefaultConfig(QuicRandom::GetInstance(), &clock,
- old_config_options);
+ crypto_config.AddDefaultConfig(QuicRandom::GetInstance(), &clock,
+ old_config_options);
QuicCryptoServerConfig::ConfigOptions new_config_options;
- std::unique_ptr<QuicServerConfigProtobuf> primary_config(
+ std::unique_ptr<QuicServerConfigProtobuf> primary_config =
crypto_config.GenerateConfig(QuicRandom::GetInstance(), &clock,
- new_config_options));
+ new_config_options);
primary_config->set_primary_time(clock.WallNow().ToUNIXSeconds());
- std::unique_ptr<CryptoHandshakeMessage> msg(
- crypto_config.AddConfig(std::move(primary_config), clock.WallNow()));
+ std::unique_ptr<CryptoHandshakeMessage> msg =
+ crypto_config.AddConfig(std::move(primary_config), clock.WallNow());
QuicStringPiece orbit;
ASSERT_TRUE(msg->GetStringPiece(kORBT, &orbit));
std::string nonce;
diff --git a/quic/tools/quic_simple_server_session_test.cc b/quic/tools/quic_simple_server_session_test.cc
index 3ccd9e4..7203f12 100644
--- a/quic/tools/quic_simple_server_session_test.cc
+++ b/quic/tools/quic_simple_server_session_test.cc
@@ -216,9 +216,9 @@
config_, connection_, &owner_, &stream_helper_, &crypto_config_,
&compressed_certs_cache_, &memory_cache_backend_);
MockClock clock;
- handshake_message_.reset(crypto_config_.AddDefaultConfig(
+ handshake_message_ = crypto_config_.AddDefaultConfig(
QuicRandom::GetInstance(), &clock,
- QuicCryptoServerConfig::ConfigOptions()));
+ QuicCryptoServerConfig::ConfigOptions());
session_->Initialize();
QuicSessionPeer::GetMutableCryptoStream(session_.get())
->OnSuccessfulVersionNegotiation(supported_versions.front());