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();