Partial rollback of cl/467313603 to unblock Chromium merge
quic_toy_server is currently used as a basis for Chromium version of quic_server, and thus cannot depend on QuicEventLoop API (which currently works only on POSIX).
PiperOrigin-RevId: 468306591
diff --git a/quiche/quic/tools/quic_toy_server.cc b/quiche/quic/tools/quic_toy_server.cc
index 500e5a1..6b3c76f 100644
--- a/quiche/quic/tools/quic_toy_server.cc
+++ b/quiche/quic/tools/quic_toy_server.cc
@@ -4,20 +4,14 @@
#include "quiche/quic/tools/quic_toy_server.h"
-#include <limits>
#include <utility>
#include <vector>
-#include "absl/strings/str_split.h"
-#include "url/third_party/mozilla/url_parse.h"
#include "quiche/quic/core/quic_versions.h"
#include "quiche/quic/platform/api/quic_default_proof_providers.h"
#include "quiche/quic/platform/api/quic_socket_address.h"
-#include "quiche/quic/tools/connect_server_backend.h"
-#include "quiche/quic/tools/connect_tunnel.h"
#include "quiche/quic/tools/quic_memory_cache_backend.h"
#include "quiche/common/platform/api/quiche_command_line_flags.h"
-#include "quiche/common/platform/api/quiche_logging.h"
DEFINE_QUICHE_COMMAND_LINE_FLAG(int32_t, port, 6121,
"The port the quic server will listen on.");
@@ -45,54 +39,8 @@
DEFINE_QUICHE_COMMAND_LINE_FLAG(bool, enable_webtransport, false,
"If true, WebTransport support is enabled.");
-DEFINE_QUICHE_COMMAND_LINE_FLAG(
- std::string, connect_proxy_destinations, "",
- "Specifies a comma-separated list of destinations (\"hostname:port\") to "
- "which the quic server will allow tunneling via CONNECT.");
-
namespace quic {
-namespace {
-
-ConnectTunnel::HostAndPort ParseProxyDestination(
- absl::string_view destination) {
- url::Component username_component;
- url::Component password_component;
- url::Component host_component;
- url::Component port_component;
-
- url::ParseAuthority(destination.data(), url::Component(0, destination.size()),
- &username_component, &password_component, &host_component,
- &port_component);
-
- // Only support "host:port"
- QUICHE_CHECK(!username_component.is_valid() &&
- !password_component.is_valid());
- QUICHE_CHECK(host_component.is_nonempty() && port_component.is_nonempty());
-
- QUICHE_CHECK_LT(static_cast<size_t>(host_component.end()),
- destination.size());
- if (host_component.len > 2 && destination[host_component.begin] == '[' &&
- destination[host_component.end() - 1] == ']') {
- // Strip "[]" off IPv6 literals.
- host_component.begin += 1;
- host_component.len -= 2;
- }
- std::string hostname(destination.data() + host_component.begin,
- host_component.len);
-
- int parsed_port_number = url::ParsePort(destination.data(), port_component);
-
- // Require specified and valid port.
- QUICHE_CHECK_GT(parsed_port_number, 0);
- QUICHE_CHECK_LE(parsed_port_number, std::numeric_limits<uint16_t>::max());
-
- return ConnectTunnel::HostAndPort(std::move(hostname),
- static_cast<uint16_t>(parsed_port_number));
-}
-
-} // namespace
-
std::unique_ptr<quic::QuicSimpleServerBackend>
QuicToyServer::MemoryCacheBackendFactory::CreateBackend() {
auto memory_cache_backend = std::make_unique<QuicMemoryCacheBackend>();
@@ -107,21 +55,6 @@
if (quiche::GetQuicheCommandLineFlag(FLAGS_enable_webtransport)) {
memory_cache_backend->EnableWebTransport();
}
-
- if (!quiche::GetQuicheCommandLineFlag(FLAGS_connect_proxy_destinations)
- .empty()) {
- absl::flat_hash_set<ConnectTunnel::HostAndPort> connect_proxy_destinations;
- for (absl::string_view destination : absl::StrSplit(
- quiche::GetQuicheCommandLineFlag(FLAGS_connect_proxy_destinations),
- ',', absl::SkipEmpty())) {
- connect_proxy_destinations.insert(ParseProxyDestination(destination));
- }
- QUICHE_CHECK(!connect_proxy_destinations.empty());
-
- return std::make_unique<ConnectServerBackend>(
- std::move(memory_cache_backend), std::move(connect_proxy_destinations));
- }
-
return memory_cache_backend;
}