Use client-supplied path instead of external configuration to switch between ECHO and DISCARD mode in QuicTransportSimpleServer
gfe-relnote: n/a (not used in production)
PiperOrigin-RevId: 284186862
Change-Id: Iaed82071af43f509c3d8104b143f2ff9f76efdb1
diff --git a/quic/tools/quic_transport_simple_server_dispatcher.cc b/quic/tools/quic_transport_simple_server_dispatcher.cc
index 9b1ea04..2302b67 100644
--- a/quic/tools/quic_transport_simple_server_dispatcher.cc
+++ b/quic/tools/quic_transport_simple_server_dispatcher.cc
@@ -22,7 +22,6 @@
std::unique_ptr<QuicCryptoServerStream::Helper> session_helper,
std::unique_ptr<QuicAlarmFactory> alarm_factory,
uint8_t expected_server_connection_id_length,
- QuicTransportSimpleServerSession::Mode mode,
std::vector<url::Origin> accepted_origins)
: QuicDispatcher(config,
crypto_config,
@@ -31,7 +30,6 @@
std::move(session_helper),
std::move(alarm_factory),
expected_server_connection_id_length),
- mode_(mode),
accepted_origins_(accepted_origins) {}
QuicSession* QuicTransportSimpleServerDispatcher::CreateQuicSession(
@@ -47,7 +45,7 @@
new QuicTransportSimpleServerSession(
connection.release(), /*owns_connection=*/true, this, config(),
GetSupportedVersions(), crypto_config(), compressed_certs_cache(),
- mode_, accepted_origins_);
+ accepted_origins_);
session->Initialize();
return session;
}
diff --git a/quic/tools/quic_transport_simple_server_dispatcher.h b/quic/tools/quic_transport_simple_server_dispatcher.h
index ea4eb8b..f3e1b47 100644
--- a/quic/tools/quic_transport_simple_server_dispatcher.h
+++ b/quic/tools/quic_transport_simple_server_dispatcher.h
@@ -23,7 +23,6 @@
std::unique_ptr<QuicCryptoServerStream::Helper> session_helper,
std::unique_ptr<QuicAlarmFactory> alarm_factory,
uint8_t expected_server_connection_id_length,
- QuicTransportSimpleServerSession::Mode mode,
std::vector<url::Origin> accepted_origins);
protected:
@@ -32,7 +31,6 @@
QuicStringPiece alpn,
const ParsedQuicVersion& version) override;
- QuicTransportSimpleServerSession::Mode mode_;
std::vector<url::Origin> accepted_origins_;
};
diff --git a/quic/tools/quic_transport_simple_server_session.cc b/quic/tools/quic_transport_simple_server_session.cc
index 40e5af3..9a0a667 100644
--- a/quic/tools/quic_transport_simple_server_session.cc
+++ b/quic/tools/quic_transport_simple_server_session.cc
@@ -133,7 +133,6 @@
const ParsedQuicVersionVector& supported_versions,
const QuicCryptoServerConfig* crypto_config,
QuicCompressedCertsCache* compressed_certs_cache,
- Mode mode,
std::vector<url::Origin> accepted_origins)
: QuicTransportServerSession(connection,
owner,
@@ -144,7 +143,7 @@
this),
connection_(connection),
owns_connection_(owns_connection),
- mode_(mode),
+ mode_(DISCARD),
accepted_origins_(accepted_origins) {}
QuicTransportSimpleServerSession::~QuicTransportSimpleServerSession() {
@@ -203,8 +202,17 @@
}
bool QuicTransportSimpleServerSession::ProcessPath(const GURL& url) {
- QUIC_DLOG(INFO) << "Path requested: " << url;
- return true;
+ if (url.path() == "/discard") {
+ mode_ = DISCARD;
+ return true;
+ }
+ if (url.path() == "/echo") {
+ mode_ = ECHO;
+ return true;
+ }
+
+ QUIC_DLOG(WARNING) << "Unknown path requested: " << url.path();
+ return false;
}
void QuicTransportSimpleServerSession::MaybeEchoStreamsBack() {
diff --git a/quic/tools/quic_transport_simple_server_session.h b/quic/tools/quic_transport_simple_server_session.h
index 5857930..aadcdf7 100644
--- a/quic/tools/quic_transport_simple_server_session.h
+++ b/quic/tools/quic_transport_simple_server_session.h
@@ -45,7 +45,6 @@
const ParsedQuicVersionVector& supported_versions,
const QuicCryptoServerConfig* crypto_config,
QuicCompressedCertsCache* compressed_certs_cache,
- Mode mode,
std::vector<url::Origin> accepted_origins);
~QuicTransportSimpleServerSession();