Remove unused server designated connection ID from QUIC
No behavior change - deleting dead client quic code
PiperOrigin-RevId: 317798951
Change-Id: I72e9f09f6072af89db6b0de34de8c00121b6fd92
diff --git a/quic/core/crypto/quic_crypto_client_config.cc b/quic/core/crypto/quic_crypto_client_config.cc
index 09c259e..28193ee 100644
--- a/quic/core/crypto/quic_crypto_client_config.cc
+++ b/quic/core/crypto/quic_crypto_client_config.cc
@@ -134,16 +134,6 @@
return scfg_.get();
}
-void QuicCryptoClientConfig::CachedState::add_server_designated_connection_id(
- QuicConnectionId connection_id) {
- server_designated_connection_ids_.push(connection_id);
-}
-
-bool QuicCryptoClientConfig::CachedState::has_server_designated_connection_id()
- const {
- return !server_designated_connection_ids_.empty();
-}
-
void QuicCryptoClientConfig::CachedState::add_server_nonce(
const std::string& server_nonce) {
server_nonces_.push(server_nonce);
@@ -206,9 +196,6 @@
server_config_.clear();
scfg_.reset();
SetProofInvalid();
- QuicQueue<QuicConnectionId> empty_queue;
- using std::swap;
- swap(server_designated_connection_ids_, empty_queue);
}
void QuicCryptoClientConfig::CachedState::SetProof(
@@ -251,9 +238,6 @@
proof_verify_details_.reset();
scfg_.reset();
++generation_counter_;
- QuicQueue<QuicConnectionId> empty_queue;
- using std::swap;
- swap(server_designated_connection_ids_, empty_queue);
}
void QuicCryptoClientConfig::CachedState::ClearProof() {
@@ -372,7 +356,6 @@
chlo_hash_ = other.chlo_hash_;
server_config_sig_ = other.server_config_sig_;
server_config_valid_ = other.server_config_valid_;
- server_designated_connection_ids_ = other.server_designated_connection_ids_;
expiration_time_ = other.expiration_time_;
if (other.proof_verify_details_ != nullptr) {
proof_verify_details_.reset(other.proof_verify_details_->Clone());
@@ -380,18 +363,6 @@
++generation_counter_;
}
-QuicConnectionId
-QuicCryptoClientConfig::CachedState::GetNextServerDesignatedConnectionId() {
- if (server_designated_connection_ids_.empty()) {
- QUIC_BUG
- << "Attempting to consume a connection id that was never designated.";
- return EmptyQuicConnectionId();
- }
- const QuicConnectionId next_id = server_designated_connection_ids_.front();
- server_designated_connection_ids_.pop();
- return next_id;
-}
-
std::string QuicCryptoClientConfig::CachedState::GetNextServerNonce() {
if (server_nonces_.empty()) {
QUIC_BUG
diff --git a/quic/core/crypto/quic_crypto_client_config.h b/quic/core/crypto/quic_crypto_client_config.h
index 6f057c2..e90cc7e 100644
--- a/quic/core/crypto/quic_crypto_client_config.h
+++ b/quic/core/crypto/quic_crypto_client_config.h
@@ -175,20 +175,6 @@
void set_cert_sct(quiche::QuicheStringPiece cert_sct);
- // Adds the connection ID to the queue of server-designated connection-ids.
- void add_server_designated_connection_id(QuicConnectionId connection_id);
-
- // If true, the crypto config contains at least one connection ID specified
- // by the server, and the client should use one of these IDs when initiating
- // the next connection.
- bool has_server_designated_connection_id() const;
-
- // This function should only be called when
- // has_server_designated_connection_id is true. Returns the next
- // connection_id specified by the server and removes it from the
- // queue of ids.
- QuicConnectionId GetNextServerDesignatedConnectionId();
-
// Adds the servernonce to the queue of server nonces.
void add_server_nonce(const std::string& server_nonce);
@@ -242,10 +228,6 @@
// scfg contains the cached, parsed value of |server_config|.
mutable std::unique_ptr<CryptoHandshakeMessage> scfg_;
- // TODO(jokulik): Consider using a hash-set as extra book-keeping to ensure
- // that no connection-id is added twice. Also, consider keeping the server
- // nonces and connection_ids together in one queue.
- QuicQueue<QuicConnectionId> server_designated_connection_ids_;
QuicQueue<std::string> server_nonces_;
};
diff --git a/quic/core/crypto/quic_crypto_client_config_test.cc b/quic/core/crypto/quic_crypto_client_config_test.cc
index 5eaa31f..c995e8a 100644
--- a/quic/core/crypto/quic_crypto_client_config_test.cc
+++ b/quic/core/crypto/quic_crypto_client_config_test.cc
@@ -81,46 +81,6 @@
EXPECT_EQ(details, state.proof_verify_details());
}
-TEST_F(QuicCryptoClientConfigTest, CachedState_ServerDesignatedConnectionId) {
- QuicCryptoClientConfig::CachedState state;
- EXPECT_FALSE(state.has_server_designated_connection_id());
-
- uint64_t conn_id = 1234;
- QuicConnectionId connection_id = TestConnectionId(conn_id);
- state.add_server_designated_connection_id(connection_id);
- EXPECT_TRUE(state.has_server_designated_connection_id());
- EXPECT_EQ(connection_id, state.GetNextServerDesignatedConnectionId());
- EXPECT_FALSE(state.has_server_designated_connection_id());
-
- // Allow the ID to be set multiple times. It's unusual that this would
- // happen, but not impossible.
- connection_id = TestConnectionId(++conn_id);
- state.add_server_designated_connection_id(connection_id);
- EXPECT_TRUE(state.has_server_designated_connection_id());
- EXPECT_EQ(connection_id, state.GetNextServerDesignatedConnectionId());
- connection_id = TestConnectionId(++conn_id);
- state.add_server_designated_connection_id(connection_id);
- EXPECT_EQ(connection_id, state.GetNextServerDesignatedConnectionId());
- EXPECT_FALSE(state.has_server_designated_connection_id());
-
- // Test FIFO behavior.
- const QuicConnectionId first_cid = TestConnectionId(0xdeadbeef);
- const QuicConnectionId second_cid = TestConnectionId(0xfeedbead);
- state.add_server_designated_connection_id(first_cid);
- state.add_server_designated_connection_id(second_cid);
- EXPECT_TRUE(state.has_server_designated_connection_id());
- EXPECT_EQ(first_cid, state.GetNextServerDesignatedConnectionId());
- EXPECT_EQ(second_cid, state.GetNextServerDesignatedConnectionId());
-}
-
-TEST_F(QuicCryptoClientConfigTest, CachedState_ServerIdConsumedBeforeSet) {
- QuicCryptoClientConfig::CachedState state;
- EXPECT_FALSE(state.has_server_designated_connection_id());
- EXPECT_QUIC_BUG(state.GetNextServerDesignatedConnectionId(),
- "Attempting to consume a connection id "
- "that was never designated.");
-}
-
TEST_F(QuicCryptoClientConfigTest, CachedState_ServerNonce) {
QuicCryptoClientConfig::CachedState state;
EXPECT_FALSE(state.has_server_nonce());
@@ -170,7 +130,6 @@
EXPECT_EQ(state.source_address_token(), other.source_address_token());
EXPECT_EQ(state.certs(), other.certs());
EXPECT_EQ(1u, other.generation_counter());
- EXPECT_FALSE(state.has_server_designated_connection_id());
EXPECT_FALSE(state.has_server_nonce());
}
@@ -536,7 +495,6 @@
AllSupportedTransportVersions().front(),
"", &cached, out_params, &error),
IsQuicNoError());
- EXPECT_FALSE(cached.has_server_designated_connection_id());
EXPECT_FALSE(cached.has_server_nonce());
}
diff --git a/quic/tools/quic_client_base.cc b/quic/tools/quic_client_base.cc
index bc09d8c..82b549f 100644
--- a/quic/tools/quic_client_base.cc
+++ b/quic/tools/quic_client_base.cc
@@ -303,21 +303,7 @@
}
QuicConnectionId QuicClientBase::GetNextConnectionId() {
- QuicConnectionId server_designated_id = GetNextServerDesignatedConnectionId();
- return !server_designated_id.IsEmpty() ? server_designated_id
- : GenerateNewConnectionId();
-}
-
-QuicConnectionId QuicClientBase::GetNextServerDesignatedConnectionId() {
- QuicCryptoClientConfig::CachedState* cached =
- crypto_config_.LookupOrCreate(server_id_);
- // If the cached state indicates that we should use a server-designated
- // connection ID, then return that connection ID.
- CHECK(cached != nullptr) << "QuicClientCryptoConfig::LookupOrCreate returned "
- << "unexpected nullptr.";
- return cached->has_server_designated_connection_id()
- ? cached->GetNextServerDesignatedConnectionId()
- : EmptyQuicConnectionId();
+ return GenerateNewConnectionId();
}
QuicConnectionId QuicClientBase::GenerateNewConnectionId() {
diff --git a/quic/tools/quic_client_base.h b/quic/tools/quic_client_base.h
index 74fc2af..842afc6 100644
--- a/quic/tools/quic_client_base.h
+++ b/quic/tools/quic_client_base.h
@@ -276,10 +276,6 @@
// returned. Otherwise, the next random ID will be returned.
QuicConnectionId GetNextConnectionId();
- // Returns the next server-designated ConnectionId from the cached config for
- // |server_id_|, if it exists. Otherwise, returns 0.
- QuicConnectionId GetNextServerDesignatedConnectionId();
-
// Generates a new, random connection ID (as opposed to a server-designated
// connection ID).
virtual QuicConnectionId GenerateNewConnectionId();