From fb8ee95080864d8375b11241ec5e23e2cdb0c46d Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Thu, 15 Dec 2022 09:48:35 -0500 Subject: [PATCH] Revert "build: Moving more downstream code into the listener extension (#24495)" This reverts commit d78e0c8ce60d8a68ba7281a1252dd172847a7627. --- .../connection_balance/dlb/source/BUILD | 2 +- .../dlb/source/connection_balancer_impl.h | 2 +- source/common/quic/active_quic_listener.h | 1 + .../bootstrap/internal_listener/BUILD | 4 +- .../active_internal_listener.cc | 2 +- .../active_internal_listener.h | 2 +- .../listener_managers/listener_manager/BUILD | 139 +---------------- .../active_raw_udp_listener_config.cc | 2 +- source/server/BUILD | 147 +++++++++++++++++- .../active_stream_listener_base.cc | 2 +- .../active_stream_listener_base.h | 2 +- .../active_tcp_listener.cc | 2 +- .../active_tcp_listener.h | 4 +- .../active_tcp_socket.cc | 4 +- .../active_tcp_socket.h | 0 .../connection_handler_impl.cc | 7 +- .../connection_handler_impl.h | 18 +-- source/server/listener_manager_factory.h | 13 -- source/server/server.cc | 18 +-- source/server/worker_impl.cc | 16 +- test/common/quic/BUILD | 3 +- test/common/quic/active_quic_listener_test.cc | 1 - .../common/quic/envoy_quic_dispatcher_test.cc | 2 +- .../bootstrap/internal_listener/BUILD | 2 +- .../active_internal_listener_test.cc | 2 +- test/extensions/common/proxy_protocol/BUILD | 2 +- .../proxy_protocol_regression_test.cc | 2 +- .../filters/listener/common/fuzz/BUILD | 2 +- .../common/fuzz/listener_filter_fuzzer.h | 2 +- .../filters/listener/proxy_protocol/BUILD | 2 +- .../proxy_protocol/proxy_protocol_test.cc | 2 +- test/integration/BUILD | 4 +- test/integration/fake_upstream.cc | 2 +- test/server/BUILD | 4 +- test/server/active_tcp_listener_test.cc | 2 +- test/server/connection_handler_test.cc | 2 +- 36 files changed, 185 insertions(+), 238 deletions(-) rename source/{extensions/listener_managers/listener_manager => server}/active_stream_listener_base.cc (98%) rename source/{extensions/listener_managers/listener_manager => server}/active_stream_listener_base.h (99%) rename source/{extensions/listener_managers/listener_manager => server}/active_tcp_listener.cc (98%) rename source/{extensions/listener_managers/listener_manager => server}/active_tcp_listener.h (95%) rename source/{extensions/listener_managers/listener_manager => server}/active_tcp_socket.cc (97%) rename source/{extensions/listener_managers/listener_manager => server}/active_tcp_socket.h (100%) rename source/{extensions/listener_managers/listener_manager => server}/connection_handler_impl.cc (98%) rename source/{extensions/listener_managers/listener_manager => server}/connection_handler_impl.h (91%) diff --git a/contrib/network/connection_balance/dlb/source/BUILD b/contrib/network/connection_balance/dlb/source/BUILD index 4dbf6c997a271..a811971c30549 100644 --- a/contrib/network/connection_balance/dlb/source/BUILD +++ b/contrib/network/connection_balance/dlb/source/BUILD @@ -44,7 +44,7 @@ envoy_cc_contrib_extension( "//source/common/common:logger_lib", "//source/common/network:connection_balancer_lib", "//source/common/protobuf:utility_lib", - "//source/extensions/listener_managers/listener_manager:active_tcp_listener", + "//source/server:active_tcp_listener", "@envoy_api//contrib/envoy/extensions/network/connection_balance/dlb/v3alpha:pkg_cc_proto", ] + select({ "//bazel:linux_x86_64": [ diff --git a/contrib/network/connection_balance/dlb/source/connection_balancer_impl.h b/contrib/network/connection_balance/dlb/source/connection_balancer_impl.h index adeb440b65f96..2e4590cc70432 100644 --- a/contrib/network/connection_balance/dlb/source/connection_balancer_impl.h +++ b/contrib/network/connection_balance/dlb/source/connection_balancer_impl.h @@ -10,7 +10,7 @@ #include "source/common/api/os_sys_calls_impl.h" #include "source/common/network/connection_balancer_impl.h" #include "source/common/protobuf/protobuf.h" -#include "source/extensions/listener_managers/listener_manager/active_tcp_listener.h" +#include "source/server/active_tcp_listener.h" #include "contrib/envoy/extensions/network/connection_balance/dlb/v3alpha/dlb.pb.h" #include "contrib/envoy/extensions/network/connection_balance/dlb/v3alpha/dlb.pb.validate.h" diff --git a/source/common/quic/active_quic_listener.h b/source/common/quic/active_quic_listener.h index 3ea921280ae6c..a79315081378f 100644 --- a/source/common/quic/active_quic_listener.h +++ b/source/common/quic/active_quic_listener.h @@ -12,6 +12,7 @@ #include "source/common/quic/envoy_quic_proof_source_factory_interface.h" #include "source/common/runtime/runtime_protos.h" #include "source/server/active_udp_listener.h" +#include "source/server/connection_handler_impl.h" #include "quiche/quic/load_balancer/load_balancer_encoder.h" diff --git a/source/extensions/bootstrap/internal_listener/BUILD b/source/extensions/bootstrap/internal_listener/BUILD index b5d4d9d6535bf..30f003f9e72b3 100644 --- a/source/extensions/bootstrap/internal_listener/BUILD +++ b/source/extensions/bootstrap/internal_listener/BUILD @@ -98,7 +98,7 @@ envoy_cc_library( "//source/common/stats:timespan_lib", "//source/common/stream_info:stream_info_lib", "//source/extensions/io_socket/user_space:config", - "//source/extensions/listener_managers/listener_manager:active_stream_listener_base", - "//source/extensions/listener_managers/listener_manager:active_tcp_listener", + "//source/server:active_stream_listener_base", + "//source/server:active_tcp_listener", ], ) diff --git a/source/extensions/bootstrap/internal_listener/active_internal_listener.cc b/source/extensions/bootstrap/internal_listener/active_internal_listener.cc index 7d71d246be792..9080807c89db1 100644 --- a/source/extensions/bootstrap/internal_listener/active_internal_listener.cc +++ b/source/extensions/bootstrap/internal_listener/active_internal_listener.cc @@ -6,7 +6,7 @@ #include "source/common/network/address_impl.h" #include "source/common/stats/timespan_impl.h" #include "source/extensions/io_socket/user_space/io_handle.h" -#include "source/extensions/listener_managers/listener_manager/active_stream_listener_base.h" +#include "source/server/active_stream_listener_base.h" namespace Envoy { namespace Extensions { diff --git a/source/extensions/bootstrap/internal_listener/active_internal_listener.h b/source/extensions/bootstrap/internal_listener/active_internal_listener.h index 8daf183639d07..85c37e3670f4a 100644 --- a/source/extensions/bootstrap/internal_listener/active_internal_listener.h +++ b/source/extensions/bootstrap/internal_listener/active_internal_listener.h @@ -18,7 +18,7 @@ #include "source/common/common/linked_object.h" #include "source/common/common/non_copyable.h" #include "source/common/stream_info/stream_info_impl.h" -#include "source/extensions/listener_managers/listener_manager/active_stream_listener_base.h" +#include "source/server/active_stream_listener_base.h" #include "spdlog/spdlog.h" diff --git a/source/extensions/listener_managers/listener_manager/BUILD b/source/extensions/listener_managers/listener_manager/BUILD index e5dcae1193ceb..64ce24108874a 100644 --- a/source/extensions/listener_managers/listener_manager/BUILD +++ b/source/extensions/listener_managers/listener_manager/BUILD @@ -28,7 +28,6 @@ envoy_cc_extension( "//test:__subpackages__", ], deps = [ - ":connection_handler_lib", "//source/server:listener_manager_factory_lib", "//source/server:api_listener_lib", ":active_raw_udp_listener_config", @@ -92,8 +91,8 @@ envoy_cc_library( "//test:__subpackages__", ], deps = [ - ":connection_handler_lib", "//envoy/registry", + "//source/server:connection_handler_lib", ], ) @@ -154,139 +153,3 @@ envoy_cc_library( "@envoy_api//envoy/service/discovery/v3:pkg_cc_proto", ], ) - -envoy_cc_extension( - name = "connection_handler_lib", - srcs = ["connection_handler_impl.cc"], - hdrs = [ - "connection_handler_impl.h", - ], - # core code. - extra_visibility = [ - "//test:__subpackages__", - ], - deps = [ - "active_tcp_listener", - "//envoy/common:time_interface", - "//envoy/event:deferred_deletable", - "//envoy/event:dispatcher_interface", - "//envoy/network:client_connection_factory", - "//envoy/network:connection_handler_interface", - "//envoy/network:connection_interface", - "//envoy/network:filter_interface", - "//envoy/network:listen_socket_interface", - "//envoy/network:listener_interface", - "//envoy/runtime:runtime_interface", - "//envoy/server:listener_manager_interface", - "//envoy/stats:timespan_interface", - "//source/common/common:linked_object", - "//source/common/common:non_copyable", - "//source/common/event:deferred_task", - "//source/common/network:address_lib", - "//source/common/network:connection_lib", - "//source/common/stream_info:stream_info_lib", - "//source/server:active_udp_listener", - "//source/server:listener_manager_factory_lib", - ], -) - -envoy_cc_library( - name = "active_tcp_listener", - srcs = ["active_tcp_listener.cc"], - hdrs = [ - "active_tcp_listener.h", - ], - deps = [ - ":active_stream_listener_base", - ":active_tcp_socket", - "//envoy/common:time_interface", - "//envoy/event:deferred_deletable", - "//envoy/event:dispatcher_interface", - "//envoy/network:connection_handler_interface", - "//envoy/network:connection_interface", - "//envoy/network:listen_socket_interface", - "//envoy/network:listener_interface", - "//envoy/server:listener_manager_interface", - "//source/common/common:assert_lib", - "//source/common/common:linked_object", - "//source/common/network:connection_lib", - "//source/common/stats:timespan_lib", - "//source/server:active_listener_base", - ], -) - -envoy_cc_library( - name = "active_tcp_listener_headers", - hdrs = [ - "active_stream_listener_base.h", - "active_tcp_listener.h", - "active_tcp_socket.h", - ], - deps = [ - "//envoy/common:time_interface", - "//envoy/event:deferred_deletable", - "//envoy/event:dispatcher_interface", - "//envoy/event:timer_interface", - "//envoy/network:connection_handler_interface", - "//envoy/network:connection_interface", - "//envoy/network:filter_interface", - "//envoy/network:listen_socket_interface", - "//envoy/network:listener_interface", - "//envoy/server:listener_manager_interface", - "//source/common/common:assert_lib", - "//source/common/common:linked_object", - "//source/common/network:connection_lib", - "//source/common/stats:timespan_lib", - "//source/server:active_listener_base", - ], -) - -envoy_cc_library( - name = "active_tcp_socket", - srcs = ["active_tcp_socket.cc"], - hdrs = [ - "active_tcp_socket.h", - ], - deps = [ - ":active_tcp_listener_headers", - "//envoy/common:time_interface", - "//envoy/event:deferred_deletable", - "//envoy/event:dispatcher_interface", - "//envoy/event:timer_interface", - "//envoy/network:connection_handler_interface", - "//envoy/network:connection_interface", - "//envoy/network:filter_interface", - "//envoy/network:listen_socket_interface", - "//envoy/network:listener_interface", - "//source/common/common:linked_object", - "//source/common/network:connection_lib", - "//source/common/network:listener_filter_buffer_lib", - "//source/common/stream_info:stream_info_lib", - "//source/server:active_listener_base", - ], -) - -envoy_cc_library( - name = "active_stream_listener_base", - srcs = ["active_stream_listener_base.cc"], - hdrs = [ - "active_stream_listener_base.h", - ], - deps = [ - ":active_tcp_listener_headers", - "//envoy/common:time_interface", - "//envoy/event:deferred_deletable", - "//envoy/event:dispatcher_interface", - "//envoy/event:timer_interface", - "//envoy/network:connection_handler_interface", - "//envoy/network:connection_interface", - "//envoy/network:filter_interface", - "//envoy/network:listen_socket_interface", - "//envoy/network:listener_interface", - "//envoy/stream_info:stream_info_interface", - "//source/common/common:linked_object", - "//source/common/network:connection_lib", - "//source/common/network:listener_filter_buffer_lib", - "//source/server:active_listener_base", - ], -) diff --git a/source/extensions/listener_managers/listener_manager/active_raw_udp_listener_config.cc b/source/extensions/listener_managers/listener_manager/active_raw_udp_listener_config.cc index d14559914ad9f..265926b9228f2 100644 --- a/source/extensions/listener_managers/listener_manager/active_raw_udp_listener_config.cc +++ b/source/extensions/listener_managers/listener_manager/active_raw_udp_listener_config.cc @@ -3,8 +3,8 @@ #include #include -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" #include "source/server/active_udp_listener.h" +#include "source/server/connection_handler_impl.h" namespace Envoy { namespace Server { diff --git a/source/server/BUILD b/source/server/BUILD index c968eece89bd2..942adf83697ff 100644 --- a/source/server/BUILD +++ b/source/server/BUILD @@ -61,6 +61,44 @@ envoy_cc_library( ], ) +envoy_cc_library( + name = "connection_handler_lib", + deps = [ + ":active_tcp_listener", + ":active_udp_listener", + ":connection_handler_impl", + "//envoy/network:client_connection_factory", + "//source/common/network:address_lib", + ], +) + +envoy_cc_library( + name = "connection_handler_impl", + srcs = ["connection_handler_impl.cc"], + hdrs = [ + "connection_handler_impl.h", + ], + deps = [ + ":active_tcp_listener", + "//envoy/common:time_interface", + "//envoy/event:deferred_deletable", + "//envoy/event:dispatcher_interface", + "//envoy/network:connection_handler_interface", + "//envoy/network:connection_interface", + "//envoy/network:filter_interface", + "//envoy/network:listen_socket_interface", + "//envoy/network:listener_interface", + "//envoy/runtime:runtime_interface", + "//envoy/server:listener_manager_interface", + "//envoy/stats:timespan_interface", + "//source/common/common:linked_object", + "//source/common/common:non_copyable", + "//source/common/event:deferred_task", + "//source/common/network:connection_lib", + "//source/common/stream_info:stream_info_lib", + ], +) + envoy_cc_library( name = "listener_stats", hdrs = [ @@ -85,6 +123,31 @@ envoy_cc_library( ], ) +envoy_cc_library( + name = "active_tcp_listener", + srcs = ["active_tcp_listener.cc"], + hdrs = [ + "active_tcp_listener.h", + ], + deps = [ + ":active_stream_listener_base", + ":active_tcp_socket", + "//envoy/common:time_interface", + "//envoy/event:deferred_deletable", + "//envoy/event:dispatcher_interface", + "//envoy/network:connection_handler_interface", + "//envoy/network:connection_interface", + "//envoy/network:listen_socket_interface", + "//envoy/network:listener_interface", + "//envoy/server:listener_manager_interface", + "//source/common/common:assert_lib", + "//source/common/common:linked_object", + "//source/common/network:connection_lib", + "//source/common/stats:timespan_lib", + "//source/server:active_listener_base", + ], +) + envoy_cc_library( name = "active_udp_listener", srcs = ["active_udp_listener.cc"], @@ -99,8 +162,83 @@ envoy_cc_library( "//envoy/network:listen_socket_interface", "//envoy/network:listener_interface", "//envoy/server:listener_manager_interface", - "//source/common/network:utility_lib", - "//source/server:active_listener_base", + "//source/server:connection_handler_impl", + ], +) + +envoy_cc_library( + name = "active_tcp_listener_headers", + hdrs = [ + "active_stream_listener_base.h", + "active_tcp_listener.h", + "active_tcp_socket.h", + ], + deps = [ + ":active_listener_base", + "//envoy/common:time_interface", + "//envoy/event:deferred_deletable", + "//envoy/event:dispatcher_interface", + "//envoy/event:timer_interface", + "//envoy/network:connection_handler_interface", + "//envoy/network:connection_interface", + "//envoy/network:filter_interface", + "//envoy/network:listen_socket_interface", + "//envoy/network:listener_interface", + "//envoy/server:listener_manager_interface", + "//source/common/common:assert_lib", + "//source/common/common:linked_object", + "//source/common/network:connection_lib", + "//source/common/stats:timespan_lib", + ], +) + +envoy_cc_library( + name = "active_tcp_socket", + srcs = ["active_tcp_socket.cc"], + hdrs = [ + "active_tcp_socket.h", + ], + deps = [ + ":active_listener_base", + ":active_tcp_listener_headers", + "//envoy/common:time_interface", + "//envoy/event:deferred_deletable", + "//envoy/event:dispatcher_interface", + "//envoy/event:timer_interface", + "//envoy/network:connection_handler_interface", + "//envoy/network:connection_interface", + "//envoy/network:filter_interface", + "//envoy/network:listen_socket_interface", + "//envoy/network:listener_interface", + "//source/common/common:linked_object", + "//source/common/network:connection_lib", + "//source/common/network:listener_filter_buffer_lib", + "//source/common/stream_info:stream_info_lib", + ], +) + +envoy_cc_library( + name = "active_stream_listener_base", + srcs = ["active_stream_listener_base.cc"], + hdrs = [ + "active_stream_listener_base.h", + ], + deps = [ + ":active_listener_base", + ":active_tcp_listener_headers", + "//envoy/common:time_interface", + "//envoy/event:deferred_deletable", + "//envoy/event:dispatcher_interface", + "//envoy/event:timer_interface", + "//envoy/network:connection_handler_interface", + "//envoy/network:connection_interface", + "//envoy/network:filter_interface", + "//envoy/network:listen_socket_interface", + "//envoy/network:listener_interface", + "//envoy/stream_info:stream_info_interface", + "//source/common/common:linked_object", + "//source/common/network:connection_lib", + "//source/common/network:listener_filter_buffer_lib", ], ) @@ -370,7 +508,6 @@ envoy_cc_library( ":worker_lib", "//envoy/server:factory_context_interface", "//envoy/server:listener_manager_interface", - "//envoy/server:worker_interface", "//source/common/quic:quic_stat_names_lib", ], ) @@ -386,6 +523,7 @@ envoy_cc_library( deps = [ ":api_listener_lib", ":configuration_lib", + ":connection_handler_lib", ":guarddog_lib", ":listener_hooks_lib", ":listener_manager_factory_lib", @@ -477,8 +615,8 @@ envoy_cc_library( srcs = ["worker_impl.cc"], hdrs = ["worker_impl.h"], deps = [ + ":connection_handler_lib", ":listener_hooks_lib", - ":listener_manager_factory_lib", "//envoy/api:api_interface", "//envoy/event:dispatcher_interface", "//envoy/event:timer_interface", @@ -489,7 +627,6 @@ envoy_cc_library( "//envoy/server:worker_interface", "//envoy/thread:thread_interface", "//envoy/thread_local:thread_local_interface", - "//source/common/config:utility_lib", ], ) diff --git a/source/extensions/listener_managers/listener_manager/active_stream_listener_base.cc b/source/server/active_stream_listener_base.cc similarity index 98% rename from source/extensions/listener_managers/listener_manager/active_stream_listener_base.cc rename to source/server/active_stream_listener_base.cc index e07eb5d74c7e7..a33a3e9bde179 100644 --- a/source/extensions/listener_managers/listener_manager/active_stream_listener_base.cc +++ b/source/server/active_stream_listener_base.cc @@ -1,4 +1,4 @@ -#include "source/extensions/listener_managers/listener_manager/active_stream_listener_base.h" +#include "source/server/active_stream_listener_base.h" #include "envoy/network/filter.h" diff --git a/source/extensions/listener_managers/listener_manager/active_stream_listener_base.h b/source/server/active_stream_listener_base.h similarity index 99% rename from source/extensions/listener_managers/listener_manager/active_stream_listener_base.h rename to source/server/active_stream_listener_base.h index 7ec1c509d5755..b88b0adb6e757 100644 --- a/source/extensions/listener_managers/listener_manager/active_stream_listener_base.h +++ b/source/server/active_stream_listener_base.h @@ -14,8 +14,8 @@ #include "envoy/stream_info/stream_info.h" #include "source/common/common/linked_object.h" -#include "source/extensions/listener_managers/listener_manager/active_tcp_socket.h" #include "source/server/active_listener_base.h" +#include "source/server/active_tcp_socket.h" namespace Envoy { namespace Server { diff --git a/source/extensions/listener_managers/listener_manager/active_tcp_listener.cc b/source/server/active_tcp_listener.cc similarity index 98% rename from source/extensions/listener_managers/listener_manager/active_tcp_listener.cc rename to source/server/active_tcp_listener.cc index 6e8a9f4e03a52..66a5f604bd106 100644 --- a/source/extensions/listener_managers/listener_manager/active_tcp_listener.cc +++ b/source/server/active_tcp_listener.cc @@ -1,4 +1,4 @@ -#include "source/extensions/listener_managers/listener_manager/active_tcp_listener.h" +#include "source/server/active_tcp_listener.h" #include diff --git a/source/extensions/listener_managers/listener_manager/active_tcp_listener.h b/source/server/active_tcp_listener.h similarity index 95% rename from source/extensions/listener_managers/listener_manager/active_tcp_listener.h rename to source/server/active_tcp_listener.h index 518801744ff4a..23dfe3a3228fc 100644 --- a/source/extensions/listener_managers/listener_manager/active_tcp_listener.h +++ b/source/server/active_tcp_listener.h @@ -5,9 +5,9 @@ #include "envoy/stream_info/stream_info.h" #include "source/common/common/linked_object.h" -#include "source/extensions/listener_managers/listener_manager/active_stream_listener_base.h" -#include "source/extensions/listener_managers/listener_manager/active_tcp_socket.h" #include "source/server/active_listener_base.h" +#include "source/server/active_stream_listener_base.h" +#include "source/server/active_tcp_socket.h" namespace Envoy { namespace Server { diff --git a/source/extensions/listener_managers/listener_manager/active_tcp_socket.cc b/source/server/active_tcp_socket.cc similarity index 97% rename from source/extensions/listener_managers/listener_manager/active_tcp_socket.cc rename to source/server/active_tcp_socket.cc index c159b7292d7b5..c6804531cafee 100644 --- a/source/extensions/listener_managers/listener_manager/active_tcp_socket.cc +++ b/source/server/active_tcp_socket.cc @@ -1,9 +1,9 @@ -#include "source/extensions/listener_managers/listener_manager/active_tcp_socket.h" +#include "source/server/active_tcp_socket.h" #include "envoy/network/filter.h" #include "source/common/stream_info/stream_info_impl.h" -#include "source/extensions/listener_managers/listener_manager/active_stream_listener_base.h" +#include "source/server/active_stream_listener_base.h" namespace Envoy { namespace Server { diff --git a/source/extensions/listener_managers/listener_manager/active_tcp_socket.h b/source/server/active_tcp_socket.h similarity index 100% rename from source/extensions/listener_managers/listener_manager/active_tcp_socket.h rename to source/server/active_tcp_socket.h diff --git a/source/extensions/listener_managers/listener_manager/connection_handler_impl.cc b/source/server/connection_handler_impl.cc similarity index 98% rename from source/extensions/listener_managers/listener_manager/connection_handler_impl.cc rename to source/server/connection_handler_impl.cc index 1ed9642d9db10..31aa11eb7a20f 100644 --- a/source/extensions/listener_managers/listener_manager/connection_handler_impl.cc +++ b/source/server/connection_handler_impl.cc @@ -1,4 +1,4 @@ -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" +#include "source/server/connection_handler_impl.h" #include @@ -10,8 +10,7 @@ #include "source/common/network/address_impl.h" #include "source/common/network/utility.h" #include "source/common/runtime/runtime_features.h" -#include "source/extensions/listener_managers/listener_manager/active_tcp_listener.h" -#include "source/server/listener_manager_factory.h" +#include "source/server/active_tcp_listener.h" namespace Envoy { namespace Server { @@ -375,7 +374,5 @@ ConnectionHandlerImpl::getBalancedHandlerByAddress(const Network::Address::Insta : absl::nullopt; } -REGISTER_FACTORY(ConnectionHandlerFactoryImpl, ConnectionHandlerFactory); - } // namespace Server } // namespace Envoy diff --git a/source/extensions/listener_managers/listener_manager/connection_handler_impl.h b/source/server/connection_handler_impl.h similarity index 91% rename from source/extensions/listener_managers/listener_manager/connection_handler_impl.h rename to source/server/connection_handler_impl.h index a8460fe53b05e..735023b4a869f 100644 --- a/source/extensions/listener_managers/listener_manager/connection_handler_impl.h +++ b/source/server/connection_handler_impl.h @@ -13,7 +13,6 @@ #include "envoy/stats/scope.h" #include "source/common/common/non_copyable.h" -#include "source/server/listener_manager_factory.h" #include "spdlog/spdlog.h" @@ -28,7 +27,9 @@ class ActiveInternalListener; * Server side connection handler. This is used both by workers as well as the * main thread for non-threaded listeners. */ -class ConnectionHandlerImpl : public ConnectionHandler, +class ConnectionHandlerImpl : public Network::TcpConnectionHandler, + public Network::UdpConnectionHandler, + public Network::InternalListenerManager, NonCopyable, Logger::Loggable { public: @@ -153,18 +154,5 @@ class ConnectionHandlerImpl : public ConnectionHandler, UnitFloat listener_reject_fraction_{UnitFloat::min()}; }; -class ConnectionHandlerFactoryImpl : public ConnectionHandlerFactory { -public: - std::unique_ptr - createConnectionHandler(Event::Dispatcher& dispatcher, - absl::optional worker_index) override { - return std::make_unique(dispatcher, worker_index); - } - - std::string name() const override { return "envoy.connection_handler.default"; } -}; - -DECLARE_FACTORY(ConnectionHandlerFactoryImpl); - } // namespace Server } // namespace Envoy diff --git a/source/server/listener_manager_factory.h b/source/server/listener_manager_factory.h index c5e2805742a14..fb773e9936efc 100644 --- a/source/server/listener_manager_factory.h +++ b/source/server/listener_manager_factory.h @@ -20,18 +20,5 @@ class ListenerManagerFactory : public Config::UntypedFactory { std::string category() const override { return "envoy.listener_manager_impl"; } }; -class ConnectionHandler : public Network::TcpConnectionHandler, - public Network::UdpConnectionHandler, - public Network::InternalListenerManager {}; - -class ConnectionHandlerFactory : public Config::UntypedFactory { -public: - virtual std::unique_ptr - createConnectionHandler(Event::Dispatcher& dispatcher, - absl::optional worker_index) PURE; - - std::string category() const override { return "envoy.connection_handler"; } -}; - } // namespace Server } // namespace Envoy diff --git a/source/server/server.cc b/source/server/server.cc index 8d864aedc5c8b..60323126163db 100644 --- a/source/server/server.cc +++ b/source/server/server.cc @@ -54,6 +54,7 @@ #include "source/common/upstream/cluster_manager_impl.h" #include "source/common/version/version.h" #include "source/server/configuration_impl.h" +#include "source/server/connection_handler_impl.h" #include "source/server/guarddog_impl.h" #include "source/server/listener_hooks.h" #include "source/server/listener_manager_factory.h" @@ -63,19 +64,6 @@ namespace Envoy { namespace Server { -namespace { -std::unique_ptr getHandler(Event::Dispatcher& dispatcher) { - - auto* factory = Config::Utility::getFactoryByName( - "envoy.connection_handler.default"); - if (factory) { - return factory->createConnectionHandler(dispatcher, absl::nullopt); - } - ENVOY_LOG_MISC(debug, "Unable to find envoy.connection_handler.default factory"); - return nullptr; -} - -} // namespace InstanceImpl::InstanceImpl( Init::Manager& init_manager, const Options& options, Event::TimeSystem& time_system, @@ -100,8 +88,8 @@ InstanceImpl::InstanceImpl( access_log_manager_(options.fileFlushIntervalMsec(), *api_, *dispatcher_, access_log_lock, store), singleton_manager_(new Singleton::ManagerImpl(api_->threadFactory())), - handler_(getHandler(*dispatcher_)), worker_factory_(thread_local_, *api_, hooks), - terminated_(false), + handler_(new ConnectionHandlerImpl(*dispatcher_, absl::nullopt)), + worker_factory_(thread_local_, *api_, hooks), terminated_(false), mutex_tracer_(options.mutexTracingEnabled() ? &Envoy::MutexTracerImpl::getOrCreateTracer() : nullptr), grpc_context_(store.symbolTable()), http_context_(store.symbolTable()), diff --git a/source/server/worker_impl.cc b/source/server/worker_impl.cc index a25f1cfdfb9e0..573fa1250d9f8 100644 --- a/source/server/worker_impl.cc +++ b/source/server/worker_impl.cc @@ -9,28 +9,16 @@ #include "envoy/server/configuration.h" #include "envoy/thread_local/thread_local.h" -#include "source/common/config/utility.h" -#include "source/server/listener_manager_factory.h" +#include "source/server/connection_handler_impl.h" namespace Envoy { namespace Server { -std::unique_ptr getHandler(Event::Dispatcher& dispatcher, uint32_t index) { - - auto* factory = Config::Utility::getFactoryByName( - "envoy.connection_handler.default"); - if (factory) { - return factory->createConnectionHandler(dispatcher, index); - } - ENVOY_LOG_MISC(debug, "Unable to find envoy.connection_handler.default factory"); - return nullptr; -} - WorkerPtr ProdWorkerFactory::createWorker(uint32_t index, OverloadManager& overload_manager, const std::string& worker_name) { Event::DispatcherPtr dispatcher( api_.allocateDispatcher(worker_name, overload_manager.scaledTimerFactory())); - auto conn_handler = getHandler(*dispatcher, index); + auto conn_handler = std::make_unique(*dispatcher, index); return std::make_unique(tls_, hooks_, std::move(dispatcher), std::move(conn_handler), overload_manager, api_, stat_names_); } diff --git a/test/common/quic/BUILD b/test/common/quic/BUILD index 4662a4aecc8ef..39c009c74aa13 100644 --- a/test/common/quic/BUILD +++ b/test/common/quic/BUILD @@ -214,7 +214,6 @@ envoy_cc_test( "//source/common/quic:active_quic_listener_lib", "//source/common/quic:envoy_quic_utils_lib", "//source/common/quic:udp_gso_batch_writer_lib", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", "//source/extensions/quic/crypto_stream:envoy_quic_crypto_server_stream_lib", "//source/extensions/quic/proof_source:envoy_quic_proof_source_factory_impl_lib", "//source/server:configuration_lib", @@ -241,9 +240,9 @@ envoy_cc_test( "//source/common/quic:envoy_quic_dispatcher_lib", "//source/common/quic:envoy_quic_proof_source_lib", "//source/common/quic:envoy_quic_server_session_lib", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", "//source/extensions/quic/crypto_stream:envoy_quic_crypto_server_stream_lib", "//source/server:configuration_lib", + "//source/server:connection_handler_lib", "//test/mocks/event:event_mocks", "//test/mocks/http:http_mocks", "//test/mocks/network:network_mocks", diff --git a/test/common/quic/active_quic_listener_test.cc b/test/common/quic/active_quic_listener_test.cc index e2d1056f5f92d..b234e28e5525a 100644 --- a/test/common/quic/active_quic_listener_test.cc +++ b/test/common/quic/active_quic_listener_test.cc @@ -14,7 +14,6 @@ #include "source/common/quic/envoy_quic_utils.h" #include "source/common/quic/udp_gso_batch_writer.h" #include "source/common/runtime/runtime_impl.h" -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" #include "source/extensions/quic/crypto_stream/envoy_quic_crypto_server_stream.h" #include "source/extensions/quic/proof_source/envoy_quic_proof_source_factory_impl.h" #include "source/server/configuration_impl.h" diff --git a/test/common/quic/envoy_quic_dispatcher_test.cc b/test/common/quic/envoy_quic_dispatcher_test.cc index e2c8d7d905e29..348d488753c09 100644 --- a/test/common/quic/envoy_quic_dispatcher_test.cc +++ b/test/common/quic/envoy_quic_dispatcher_test.cc @@ -10,9 +10,9 @@ #include "source/common/quic/envoy_quic_server_session.h" #include "source/common/quic/envoy_quic_utils.h" #include "source/common/quic/quic_transport_socket_factory.h" -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" #include "source/extensions/quic/crypto_stream/envoy_quic_crypto_server_stream.h" #include "source/server/configuration_impl.h" +#include "source/server/connection_handler_impl.h" #include "test/common/quic/test_proof_source.h" #include "test/common/quic/test_utils.h" diff --git a/test/extensions/bootstrap/internal_listener/BUILD b/test/extensions/bootstrap/internal_listener/BUILD index 205626b828542..79ac5bdf32661 100644 --- a/test/extensions/bootstrap/internal_listener/BUILD +++ b/test/extensions/bootstrap/internal_listener/BUILD @@ -76,8 +76,8 @@ envoy_extension_cc_test( "//source/common/stats:stats_lib", "//source/extensions/bootstrap/internal_listener:active_internal_listener", "//source/extensions/bootstrap/internal_listener:thread_local_registry", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", "//source/extensions/transport_sockets/raw_buffer:config", + "//source/server:connection_handler_lib", "//test/mocks/access_log:access_log_mocks", "//test/mocks/network:network_mocks", "//test/server:utility_lib", diff --git a/test/extensions/bootstrap/internal_listener/active_internal_listener_test.cc b/test/extensions/bootstrap/internal_listener/active_internal_listener_test.cc index 5a8b1b71fb89b..06aa3a2453b7b 100644 --- a/test/extensions/bootstrap/internal_listener/active_internal_listener_test.cc +++ b/test/extensions/bootstrap/internal_listener/active_internal_listener_test.cc @@ -10,7 +10,7 @@ #include "source/common/network/raw_buffer_socket.h" #include "source/extensions/bootstrap/internal_listener/active_internal_listener.h" #include "source/extensions/bootstrap/internal_listener/thread_local_registry.h" -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" +#include "source/server/connection_handler_impl.h" #include "test/mocks/access_log/mocks.h" #include "test/mocks/common.h" diff --git a/test/extensions/common/proxy_protocol/BUILD b/test/extensions/common/proxy_protocol/BUILD index 33b8ac48892be..9acf8a7fd819a 100644 --- a/test/extensions/common/proxy_protocol/BUILD +++ b/test/extensions/common/proxy_protocol/BUILD @@ -30,7 +30,7 @@ envoy_cc_test( "//source/common/network:listener_lib", "//source/extensions/common/proxy_protocol:proxy_protocol_header_lib", "//source/extensions/filters/listener/proxy_protocol:proxy_protocol_lib", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", + "//source/server:connection_handler_lib", "//test/mocks/buffer:buffer_mocks", "//test/mocks/network:network_mocks", "//test/test_common:environment_lib", diff --git a/test/extensions/common/proxy_protocol/proxy_protocol_regression_test.cc b/test/extensions/common/proxy_protocol/proxy_protocol_regression_test.cc index 4acd80e3317d2..df975d003fc0c 100644 --- a/test/extensions/common/proxy_protocol/proxy_protocol_regression_test.cc +++ b/test/extensions/common/proxy_protocol/proxy_protocol_regression_test.cc @@ -7,7 +7,7 @@ #include "source/common/network/listen_socket_impl.h" #include "source/extensions/common/proxy_protocol/proxy_protocol_header.h" #include "source/extensions/filters/listener/proxy_protocol/proxy_protocol.h" -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" +#include "source/server/connection_handler_impl.h" #include "test/mocks/buffer/mocks.h" #include "test/mocks/network/mocks.h" diff --git a/test/extensions/filters/listener/common/fuzz/BUILD b/test/extensions/filters/listener/common/fuzz/BUILD index 3e21c9b2600d7..fdf01989250f7 100644 --- a/test/extensions/filters/listener/common/fuzz/BUILD +++ b/test/extensions/filters/listener/common/fuzz/BUILD @@ -23,7 +23,7 @@ envoy_cc_test_library( ":listener_filter_fuzzer_proto_cc_proto", "//envoy/network:filter_interface", "//source/common/network:connection_balancer_lib", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", + "//source/server:connection_handler_lib", "//test/mocks/network:network_mocks", "//test/test_common:network_utility_lib", "//test/test_common:threadsafe_singleton_injector_lib", diff --git a/test/extensions/filters/listener/common/fuzz/listener_filter_fuzzer.h b/test/extensions/filters/listener/common/fuzz/listener_filter_fuzzer.h index 270d926c8b7d2..55f6cd66e93be 100644 --- a/test/extensions/filters/listener/common/fuzz/listener_filter_fuzzer.h +++ b/test/extensions/filters/listener/common/fuzz/listener_filter_fuzzer.h @@ -3,7 +3,7 @@ #include "envoy/network/filter.h" #include "source/common/network/connection_balancer_impl.h" -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" +#include "source/server/connection_handler_impl.h" #include "test/extensions/filters/listener/common/fuzz/listener_filter_fakes.h" #include "test/extensions/filters/listener/common/fuzz/listener_filter_fuzzer.pb.validate.h" diff --git a/test/extensions/filters/listener/proxy_protocol/BUILD b/test/extensions/filters/listener/proxy_protocol/BUILD index 5b91f073aca02..2fb71747be6d7 100644 --- a/test/extensions/filters/listener/proxy_protocol/BUILD +++ b/test/extensions/filters/listener/proxy_protocol/BUILD @@ -27,7 +27,7 @@ envoy_extension_cc_test( "//source/common/stats:stats_lib", "//source/extensions/filters/listener/proxy_protocol:config", "//source/extensions/filters/listener/proxy_protocol:proxy_protocol_lib", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", + "//source/server:connection_handler_lib", "//test/mocks/api:api_mocks", "//test/mocks/buffer:buffer_mocks", "//test/mocks/network:network_mocks", diff --git a/test/extensions/filters/listener/proxy_protocol/proxy_protocol_test.cc b/test/extensions/filters/listener/proxy_protocol/proxy_protocol_test.cc index facb23375b765..e9e0cbe5be80b 100644 --- a/test/extensions/filters/listener/proxy_protocol/proxy_protocol_test.cc +++ b/test/extensions/filters/listener/proxy_protocol/proxy_protocol_test.cc @@ -15,7 +15,7 @@ #include "source/common/network/tcp_listener_impl.h" #include "source/common/network/utility.h" #include "source/extensions/filters/listener/proxy_protocol/proxy_protocol.h" -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" +#include "source/server/connection_handler_impl.h" #include "test/mocks/api/mocks.h" #include "test/mocks/buffer/mocks.h" diff --git a/test/integration/BUILD b/test/integration/BUILD index 2fccdfb1f8d9b..993cdc87960d8 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -874,7 +874,7 @@ envoy_cc_test_library( "//source/common/network:utility_lib", "//source/common/stats:isolated_store_lib", "//source/extensions/listener_managers/listener_manager:active_raw_udp_listener_config", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", + "//source/server:connection_handler_lib", "//test/test_common:network_utility_lib", "//test/test_common:test_time_system_interface", "//test/test_common:utility_lib", @@ -1064,8 +1064,8 @@ envoy_cc_test_library( "//source/common/upstream:upstream_lib", "//source/extensions/access_loggers/file:config", "//source/extensions/access_loggers/stream:config", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", "//source/extensions/transport_sockets/raw_buffer:config", + "//source/server:connection_handler_lib", "//source/server:drain_manager_lib", "//source/server:hot_restart_nop_lib", "//source/server:listener_hooks_lib", diff --git a/test/integration/fake_upstream.cc b/test/integration/fake_upstream.cc index 783439df3d2a7..f17942f032221 100644 --- a/test/integration/fake_upstream.cc +++ b/test/integration/fake_upstream.cc @@ -21,7 +21,7 @@ #include "quiche/quic/test_tools/quic_session_peer.h" #endif -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" +#include "source/server/connection_handler_impl.h" #include "test/test_common/network_utility.h" #include "test/test_common/utility.h" diff --git a/test/server/BUILD b/test/server/BUILD index 5d68815ddbeb7..43a632743111d 100644 --- a/test/server/BUILD +++ b/test/server/BUILD @@ -83,7 +83,7 @@ envoy_cc_test( "//source/common/network:udp_packet_writer_handler_lib", "//source/common/stats:stats_lib", "//source/extensions/listener_managers/listener_manager:active_raw_udp_listener_config", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", + "//source/server:connection_handler_lib", "//test/mocks/access_log:access_log_mocks", "//test/mocks/api:api_mocks", "//test/mocks/network:network_mocks", @@ -104,7 +104,7 @@ envoy_cc_test( "//source/common/network:address_lib", "//source/common/network:connection_balancer_lib", "//source/common/stats:stats_lib", - "//source/extensions/listener_managers/listener_manager:connection_handler_lib", + "//source/server:connection_handler_lib", "//test/mocks/network:io_handle_mocks", "//test/mocks/network:network_mocks", "//test/test_common:network_utility_lib", diff --git a/test/server/active_tcp_listener_test.cc b/test/server/active_tcp_listener_test.cc index 7e2fc67c91351..69a71454b75d5 100644 --- a/test/server/active_tcp_listener_test.cc +++ b/test/server/active_tcp_listener_test.cc @@ -8,7 +8,7 @@ #include "source/common/network/connection_balancer_impl.h" #include "source/common/network/raw_buffer_socket.h" #include "source/common/network/utility.h" -#include "source/extensions/listener_managers/listener_manager/active_tcp_listener.h" +#include "source/server/active_tcp_listener.h" #include "test/mocks/common.h" #include "test/mocks/network/io_handle.h" diff --git a/test/server/connection_handler_test.cc b/test/server/connection_handler_test.cc index f5d7c096c9e00..f2378e1b0c568 100644 --- a/test/server/connection_handler_test.cc +++ b/test/server/connection_handler_test.cc @@ -21,7 +21,7 @@ #include "source/common/network/udp_packet_writer_handler_impl.h" #include "source/common/network/utility.h" #include "source/extensions/listener_managers/listener_manager/active_raw_udp_listener_config.h" -#include "source/extensions/listener_managers/listener_manager/connection_handler_impl.h" +#include "source/server/connection_handler_impl.h" #include "test/mocks/access_log/mocks.h" #include "test/mocks/api/mocks.h"