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/quic_transport/quic_transport_integration_test.cc b/quic/quic_transport/quic_transport_integration_test.cc
index 57f5380..b8d8eae 100644
--- a/quic/quic_transport/quic_transport_integration_test.cc
+++ b/quic/quic_transport/quic_transport_integration_test.cc
@@ -70,7 +70,8 @@
QuicTransportClientEndpoint(Simulator* simulator,
const std::string& name,
const std::string& peer_name,
- url::Origin origin)
+ url::Origin origin,
+ const std::string& path)
: QuicTransportEndpointBase(simulator,
name,
peer_name,
@@ -80,7 +81,7 @@
nullptr,
DefaultQuicConfig(),
GetVersions(),
- GURL("quic-transport://test.example.com:50000"),
+ GURL("quic-transport://test.example.com:50000" + path),
&crypto_config_,
origin,
&visitor_) {
@@ -101,7 +102,6 @@
QuicTransportServerEndpoint(Simulator* simulator,
const std::string& name,
const std::string& peer_name,
- QuicTransportSimpleServerSession::Mode mode,
std::vector<url::Origin> accepted_origins)
: QuicTransportEndpointBase(simulator,
name,
@@ -120,7 +120,6 @@
GetVersions(),
&crypto_config_,
&compressed_certs_cache_,
- mode,
accepted_origins) {
session_.Initialize();
}
@@ -161,11 +160,11 @@
QuicTransportIntegrationTest()
: switch_(&simulator_, "Switch", 8, 2 * kBdp) {}
- void CreateDefaultEndpoints(QuicTransportSimpleServerSession::Mode mode) {
+ void CreateDefaultEndpoints(const std::string& path) {
client_ = std::make_unique<QuicTransportClientEndpoint>(
- &simulator_, "Client", "Server", GetTestOrigin());
+ &simulator_, "Client", "Server", GetTestOrigin(), path);
server_ = std::make_unique<QuicTransportServerEndpoint>(
- &simulator_, "Server", "Client", mode, accepted_origins_);
+ &simulator_, "Server", "Client", accepted_origins_);
}
void WireUpEndpoints() {
@@ -206,7 +205,7 @@
};
TEST_F(QuicTransportIntegrationTest, SuccessfulHandshake) {
- CreateDefaultEndpoints(QuicTransportSimpleServerSession::DISCARD);
+ CreateDefaultEndpoints("/discard");
WireUpEndpoints();
RunHandshake();
EXPECT_TRUE(client_->session()->IsSessionReady());
@@ -215,7 +214,7 @@
TEST_F(QuicTransportIntegrationTest, OriginMismatch) {
accepted_origins_ = {url::Origin::Create(GURL{"https://wrong-origin.test"})};
- CreateDefaultEndpoints(QuicTransportSimpleServerSession::DISCARD);
+ CreateDefaultEndpoints("/discard");
WireUpEndpoints();
RunHandshake();
// Wait until the client receives CONNECTION_CLOSE.
@@ -233,7 +232,7 @@
}
TEST_F(QuicTransportIntegrationTest, SendOutgoingStreams) {
- CreateDefaultEndpoints(QuicTransportSimpleServerSession::DISCARD);
+ CreateDefaultEndpoints("/discard");
WireUpEndpoints();
RunHandshake();
@@ -259,7 +258,7 @@
}
TEST_F(QuicTransportIntegrationTest, EchoBidirectionalStreams) {
- CreateDefaultEndpoints(QuicTransportSimpleServerSession::ECHO);
+ CreateDefaultEndpoints("/echo");
WireUpEndpoints();
RunHandshake();
@@ -281,7 +280,7 @@
}
TEST_F(QuicTransportIntegrationTest, EchoUnidirectionalStreams) {
- CreateDefaultEndpoints(QuicTransportSimpleServerSession::ECHO);
+ CreateDefaultEndpoints("/echo");
WireUpEndpoints();
RunHandshake();
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();