Allow quic_toy_server to only use IETF QUIC
gfe-relnote: n/a, test-only
PiperOrigin-RevId: 268771484
Change-Id: I0546c2758165c4f16e7b2a3cda008e34643fdb04
diff --git a/quic/tools/quic_epoll_server_factory.cc b/quic/tools/quic_epoll_server_factory.cc
index 9662658..baa1392 100644
--- a/quic/tools/quic_epoll_server_factory.cc
+++ b/quic/tools/quic_epoll_server_factory.cc
@@ -10,8 +10,10 @@
std::unique_ptr<quic::QuicSpdyServerBase> QuicEpollServerFactory::CreateServer(
quic::QuicSimpleServerBackend* backend,
- std::unique_ptr<quic::ProofSource> proof_source) {
- return std::make_unique<quic::QuicServer>(std::move(proof_source), backend);
+ std::unique_ptr<quic::ProofSource> proof_source,
+ const quic::ParsedQuicVersionVector& supported_versions) {
+ return std::make_unique<quic::QuicServer>(std::move(proof_source), backend,
+ supported_versions);
}
} // namespace quic
diff --git a/quic/tools/quic_epoll_server_factory.h b/quic/tools/quic_epoll_server_factory.h
index 391f3cd..9070291 100644
--- a/quic/tools/quic_epoll_server_factory.h
+++ b/quic/tools/quic_epoll_server_factory.h
@@ -15,7 +15,8 @@
public:
std::unique_ptr<QuicSpdyServerBase> CreateServer(
QuicSimpleServerBackend* backend,
- std::unique_ptr<ProofSource> proof_source) override;
+ std::unique_ptr<ProofSource> proof_source,
+ const quic::ParsedQuicVersionVector& supported_versions) override;
private:
QuicEpollServer epoll_server_;
diff --git a/quic/tools/quic_server.cc b/quic/tools/quic_server.cc
index 46b04a5..294dbc5 100644
--- a/quic/tools/quic_server.cc
+++ b/quic/tools/quic_server.cc
@@ -51,9 +51,16 @@
QuicServer::QuicServer(std::unique_ptr<ProofSource> proof_source,
QuicSimpleServerBackend* quic_simple_server_backend)
: QuicServer(std::move(proof_source),
+ quic_simple_server_backend,
+ AllSupportedVersions()) {}
+
+QuicServer::QuicServer(std::unique_ptr<ProofSource> proof_source,
+ QuicSimpleServerBackend* quic_simple_server_backend,
+ const ParsedQuicVersionVector& supported_versions)
+ : QuicServer(std::move(proof_source),
QuicConfig(),
QuicCryptoServerConfig::ConfigOptions(),
- AllSupportedVersions(),
+ supported_versions,
quic_simple_server_backend,
kQuicDefaultConnectionIdLength) {}
diff --git a/quic/tools/quic_server.h b/quic/tools/quic_server.h
index 755e5e3..0b11be3 100644
--- a/quic/tools/quic_server.h
+++ b/quic/tools/quic_server.h
@@ -39,8 +39,11 @@
QuicServer(std::unique_ptr<ProofSource> proof_source,
QuicSimpleServerBackend* quic_simple_server_backend);
QuicServer(std::unique_ptr<ProofSource> proof_source,
+ QuicSimpleServerBackend* quic_simple_server_backend,
+ const ParsedQuicVersionVector& supported_versions);
+ QuicServer(std::unique_ptr<ProofSource> proof_source,
const QuicConfig& config,
- const QuicCryptoServerConfig::ConfigOptions& server_config_options,
+ const QuicCryptoServerConfig::ConfigOptions& crypto_config_options,
const ParsedQuicVersionVector& supported_versions,
QuicSimpleServerBackend* quic_simple_server_backend,
uint8_t expected_server_connection_id_length);
diff --git a/quic/tools/quic_toy_server.cc b/quic/tools/quic_toy_server.cc
index 39f206f..c572c7a 100644
--- a/quic/tools/quic_toy_server.cc
+++ b/quic/tools/quic_toy_server.cc
@@ -49,15 +49,19 @@
: backend_factory_(backend_factory), server_factory_(server_factory) {}
int QuicToyServer::Start() {
+ ParsedQuicVersionVector supported_versions;
if (GetQuicFlag(FLAGS_quic_ietf_draft)) {
QuicVersionInitializeSupportForIetfDraft();
- quic::QuicEnableVersion(
- quic::ParsedQuicVersion(quic::PROTOCOL_TLS1_3, quic::QUIC_VERSION_99));
+ ParsedQuicVersion version(PROTOCOL_TLS1_3, QUIC_VERSION_99);
+ QuicEnableVersion(version);
+ supported_versions = {version};
+ } else {
+ supported_versions = AllSupportedVersions();
}
auto proof_source = quic::CreateDefaultProofSource();
auto backend = backend_factory_->CreateBackend();
- auto server =
- server_factory_->CreateServer(backend.get(), std::move(proof_source));
+ auto server = server_factory_->CreateServer(
+ backend.get(), std::move(proof_source), supported_versions);
if (!server->CreateUDPSocketAndListen(quic::QuicSocketAddress(
quic::QuicIpAddress::Any6(), GetQuicFlag(FLAGS_port)))) {
diff --git a/quic/tools/quic_toy_server.h b/quic/tools/quic_toy_server.h
index 6c5c486..6168b3f 100644
--- a/quic/tools/quic_toy_server.h
+++ b/quic/tools/quic_toy_server.h
@@ -24,7 +24,8 @@
// responses, and |proof_source| for certificates.
virtual std::unique_ptr<QuicSpdyServerBase> CreateServer(
QuicSimpleServerBackend* backend,
- std::unique_ptr<ProofSource> proof_source) = 0;
+ std::unique_ptr<ProofSource> proof_source,
+ const ParsedQuicVersionVector& supported_versions) = 0;
};
// A facotry for creating QuicSimpleServerBackend instances.