Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiple addresses listener: remove legacy interface #22381

Merged
merged 3 commits into from
Aug 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions envoy/network/listener.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,12 +148,6 @@ class ListenerConfig {
*/
virtual FilterChainFactory& filterChainFactory() PURE;

/**
* TODO(soulxu): This will be removed when multiple addresses listener implemented.
* @return ListenSocketFactory& the factory to create listen socket.
*/
virtual ListenSocketFactory& listenSocketFactory() PURE;

/**
* @return std::vector<ListenSocketFactoryPtr>& the factories to create listen sockets.
*/
Expand Down
4 changes: 0 additions & 4 deletions source/server/admin/admin.h
Original file line number Diff line number Diff line change
Expand Up @@ -389,10 +389,6 @@ class AdminImpl : public Admin,
// Network::ListenerConfig
Network::FilterChainManager& filterChainManager() override { return parent_; }
Network::FilterChainFactory& filterChainFactory() override { return parent_; }
Network::ListenSocketFactory& listenSocketFactory() override {
ASSERT(parent_.socket_factories_.size() == 1);
return *parent_.socket_factories_[0];
}
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return parent_.socket_factories_;
}
Expand Down
2 changes: 0 additions & 2 deletions source/server/listener_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,6 @@ class ListenerImpl final : public Network::ListenerConfig,
return addresses_;
}
const envoy::config::listener::v3::Listener& config() const { return config_; }
const Network::ListenSocketFactory& getSocketFactory() const { return *socket_factories_[0]; }
const std::vector<Network::ListenSocketFactoryPtr>& getSocketFactories() const {
return socket_factories_;
}
Expand All @@ -324,7 +323,6 @@ class ListenerImpl final : public Network::ListenerConfig,
// Network::ListenerConfig
Network::FilterChainManager& filterChainManager() override { return *filter_chain_manager_; }
Network::FilterChainFactory& filterChainFactory() override { return *this; }
Network::ListenSocketFactory& listenSocketFactory() override { return *socket_factories_[0]; }
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return socket_factories_;
}
Expand Down
4 changes: 2 additions & 2 deletions source/server/listener_manager_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1044,8 +1044,8 @@ void ListenerManagerImpl::setNewOrDrainingSocketFactory(const std::string& name,
draining_filter_chains_manager_.cbegin(), draining_filter_chains_manager_.cend(),
[&listener](const DrainingFilterChainsManager& draining_filter_chain) {
return draining_filter_chain.getDrainingListener()
.listenSocketFactory()
.getListenSocket(0)
.listenSocketFactories()[0]
->getListenSocket(0)
->isOpen() &&
listener.hasCompatibleAddress(draining_filter_chain.getDrainingListener());
});
Expand Down
9 changes: 5 additions & 4 deletions test/common/quic/active_quic_listener_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,10 @@ class ActiveQuicListenerTest : public testing::TestWithParam<Network::Address::I
listen_socket_->addOptions(Network::SocketOptionFactory::buildRxQueueOverFlowOptions());
ASSERT_TRUE(Network::Socket::applyOptions(listen_socket_->options(), *listen_socket_,
envoy::config::core::v3::SocketOption::STATE_BOUND));

ON_CALL(listener_config_, listenSocketFactory()).WillByDefault(ReturnRef(socket_factory_));
ON_CALL(socket_factory_, getListenSocket(_)).WillByDefault(Return(listen_socket_));
EXPECT_CALL(*static_cast<Network::MockListenSocketFactory*>(
listener_config_.socket_factories_[0].get()),
getListenSocket(_))
.WillRepeatedly(Return(listen_socket_));

// Use UdpGsoBatchWriter to perform non-batched writes for the purpose of this test, if it is
// supported.
Expand All @@ -121,7 +122,7 @@ class ActiveQuicListenerTest : public testing::TestWithParam<Network::Address::I
quic_listener_ =
staticUniquePointerCast<ActiveQuicListener>(listener_factory_->createActiveUdpListener(
scoped_runtime_.loader(), 0, connection_handler_,
listener_config_.listenSocketFactory().getListenSocket(0), *dispatcher_,
listener_config_.socket_factories_[0]->getListenSocket(0), *dispatcher_,
listener_config_));
quic_dispatcher_ = ActiveQuicListenerPeer::quicDispatcher(*quic_listener_);
quic::QuicCryptoServerConfig& crypto_config =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,6 @@ class ConnectionHandlerTest : public testing::Test, protected Logger::Loggable<L
: *inline_filter_chain_manager_;
}
Network::FilterChainFactory& filterChainFactory() override { return parent_.factory_; }
Network::ListenSocketFactory& listenSocketFactory() override { return *socket_factories_[0]; }
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return socket_factories_;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ class ProxyProtocolRegressionTest : public testing::TestWithParam<Network::Addre
// Network::ListenerConfig
Network::FilterChainManager& filterChainManager() override { return *this; }
Network::FilterChainFactory& filterChainFactory() override { return factory_; }
Network::ListenSocketFactory& listenSocketFactory() override { return *socket_factories_[0]; }
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return socket_factories_;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ class ListenerFilterWithDataFuzzer : public Network::ListenerConfig,
// Network::ListenerConfig
Network::FilterChainManager& filterChainManager() override { return *this; }
Network::FilterChainFactory& filterChainFactory() override { return factory_; }
Network::ListenSocketFactory& listenSocketFactory() override { return *socket_factories_[0]; }
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return socket_factories_;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ class ProxyProtocolTest : public testing::TestWithParam<Network::Address::IpVers
// Network::ListenerConfig
Network::FilterChainManager& filterChainManager() override { return *this; }
Network::FilterChainFactory& filterChainFactory() override { return factory_; }
Network::ListenSocketFactory& listenSocketFactory() override { return *socket_factories_[0]; }
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return socket_factories_;
}
Expand Down Expand Up @@ -1787,7 +1786,6 @@ class WildcardProxyProtocolTest : public testing::TestWithParam<Network::Address
// Network::ListenerConfig
Network::FilterChainManager& filterChainManager() override { return *this; }
Network::FilterChainFactory& filterChainFactory() override { return factory_; }
Network::ListenSocketFactory& listenSocketFactory() override { return *socket_factories_[0]; }
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return socket_factories_;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ name: new_listener
.listenerManager()
.listeners()[1]
.get()
.listenSocketFactory()
.localAddress()
.listenSocketFactories()[0]
->localAddress()
->ip()
->port();

Expand Down
3 changes: 0 additions & 3 deletions test/integration/fake_upstream.h
Original file line number Diff line number Diff line change
Expand Up @@ -826,9 +826,6 @@ class FakeUpstream : Logger::Loggable<Logger::Id::testing>,
// Network::ListenerConfig
Network::FilterChainManager& filterChainManager() override { return parent_; }
Network::FilterChainFactory& filterChainFactory() override { return parent_; }
Network::ListenSocketFactory& listenSocketFactory() override {
return *parent_.socket_factories_[0];
}
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return parent_.socket_factories_;
}
Expand Down
7 changes: 4 additions & 3 deletions test/integration/integration_admin_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -349,9 +349,10 @@ TEST_P(IntegrationAdminTest, Admin) {
++listener_info_it, ++listener_it) {
auto local_address = (*listener_info_it)->getObject("local_address");
auto socket_address = local_address->getObject("socket_address");
EXPECT_EQ(listener_it->get().listenSocketFactory().localAddress()->ip()->addressAsString(),
socket_address->getString("address"));
EXPECT_EQ(listener_it->get().listenSocketFactory().localAddress()->ip()->port(),
EXPECT_EQ(
listener_it->get().listenSocketFactories()[0]->localAddress()->ip()->addressAsString(),
socket_address->getString("address"));
EXPECT_EQ(listener_it->get().listenSocketFactories()[0]->localAddress()->ip()->port(),
socket_address->getInteger("port_value"));

std::vector<Json::ObjectSharedPtr> additional_local_addresses =
Expand Down
2 changes: 1 addition & 1 deletion test/integration/server.cc
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ void IntegrationTestServer::start(
if (tap_path) {
std::vector<uint32_t> ports;
for (auto listener : server().listenerManager().listeners()) {
const auto listen_addr = listener.get().listenSocketFactory().localAddress();
const auto listen_addr = listener.get().listenSocketFactories()[0]->localAddress();
if (listen_addr->type() == Network::Address::Type::Ip) {
ports.push_back(listen_addr->ip()->port());
}
Expand Down
1 change: 0 additions & 1 deletion test/mocks/network/mocks.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ MockListenerConfig::MockListenerConfig()
: socket_(std::make_shared<testing::NiceMock<MockListenSocket>>()) {
socket_factories_.emplace_back(std::make_unique<MockListenSocketFactory>());
ON_CALL(*this, filterChainFactory()).WillByDefault(ReturnRef(filter_chain_factory_));
ON_CALL(*this, listenSocketFactory()).WillByDefault(ReturnRef(*socket_factories_[0].get()));
ON_CALL(*this, listenSocketFactories()).WillByDefault(ReturnRef(socket_factories_));
ON_CALL(*static_cast<MockListenSocketFactory*>(socket_factories_[0].get()), localAddress())
.WillByDefault(ReturnRef(socket_->connectionInfoProvider().localAddress()));
Expand Down
1 change: 0 additions & 1 deletion test/mocks/network/mocks.h
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,6 @@ class MockListenerConfig : public ListenerConfig {

MOCK_METHOD(FilterChainManager&, filterChainManager, ());
MOCK_METHOD(FilterChainFactory&, filterChainFactory, ());
MOCK_METHOD(ListenSocketFactory&, listenSocketFactory, ());
MOCK_METHOD(std::vector<ListenSocketFactoryPtr>&, listenSocketFactories, ());
MOCK_METHOD(bool, bindToPort, (), (const));
MOCK_METHOD(bool, handOffRestoredDestinationConnections, (), (const));
Expand Down
2 changes: 1 addition & 1 deletion test/mocks/server/worker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ MockWorker::MockWorker() {
Network::ListenerConfig& config,
AddListenerCompletion completion, Runtime::Loader&) -> void {
UNREFERENCED_PARAMETER(overridden_listener);
config.listenSocketFactory().getListenSocket(0);
config.listenSocketFactories()[0]->getListenSocket(0);
EXPECT_EQ(nullptr, add_listener_completion_);
add_listener_completion_ = completion;
}));
Expand Down
2 changes: 1 addition & 1 deletion test/per_file_coverage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ declare -a KNOWN_LOW_COVERAGE=(
"source/extensions/watchdog:83.3" # Death tests within extensions
"source/extensions/watchdog/profile_action:83.3"
"source/server:93.3" # flaky: be careful adjusting. See https://github.com/envoyproxy/envoy/issues/15239
"source/server/admin:97.4" # TODO(soulxu) try to raise this back to `97.6` when multiple addresses listener implemented and the old interface of Network::ListenerConfig is removed.
"source/server/admin:97.6"
"source/server/config_validation:74.8"
)

Expand Down
6 changes: 4 additions & 2 deletions test/server/active_udp_listener_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,10 @@ class ActiveUdpListenerTest : public testing::TestWithParam<Network::Address::Ip
ASSERT_TRUE(Network::Socket::applyOptions(listen_socket_->options(), *listen_socket_,
envoy::config::core::v3::SocketOption::STATE_BOUND));

ON_CALL(socket_factory_, getListenSocket(_)).WillByDefault(Return(listen_socket_));
EXPECT_CALL(listener_config_, listenSocketFactory()).WillRepeatedly(ReturnRef(socket_factory_));
ON_CALL(*static_cast<Network::MockListenSocketFactory*>(
listener_config_.socket_factories_[0].get()),
getListenSocket(_))
.WillByDefault(Return(listen_socket_));

// Use UdpGsoBatchWriter to perform non-batched writes for the purpose of this test, if it is
// supported.
Expand Down
1 change: 0 additions & 1 deletion test/server/connection_handler_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ class ConnectionHandlerTest : public testing::Test, protected Logger::Loggable<L
: *inline_filter_chain_manager_;
}
Network::FilterChainFactory& filterChainFactory() override { return parent_.factory_; }
Network::ListenSocketFactory& listenSocketFactory() override { return *socket_factories_[0]; }
std::vector<Network::ListenSocketFactoryPtr>& listenSocketFactories() override {
return socket_factories_;
}
Expand Down
4 changes: 2 additions & 2 deletions test/server/listener_manager_impl_quic_only_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ TEST_P(ListenerManagerImplQuicOnlyTest, QuicListenerFactoryAndSslContext) {
->listenerFactory()
.isTransportConnectionless());
Network::SocketSharedPtr listen_socket =
manager_->listeners().front().get().listenSocketFactory().getListenSocket(0);
manager_->listeners().front().get().listenSocketFactories()[0]->getListenSocket(0);

Network::UdpPacketWriterPtr udp_packet_writer =
manager_->listeners()
Expand Down Expand Up @@ -231,7 +231,7 @@ TEST_P(ListenerManagerImplQuicOnlyTest, QuicWriterFromConfig) {
->listenerFactory()
.isTransportConnectionless());
Network::SocketSharedPtr listen_socket =
manager_->listeners().front().get().listenSocketFactory().getListenSocket(0);
manager_->listeners().front().get().listenSocketFactories()[0]->getListenSocket(0);

Network::UdpPacketWriterFactory& udp_packet_writer_factory =
manager_->listeners().front().get().udpListenerConfig()->packetWriterFactory();
Expand Down
2 changes: 1 addition & 1 deletion test/server/listener_manager_impl_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7223,7 +7223,7 @@ TEST_P(ListenerManagerImplTest, UdpDefaultWriterConfig) {
addOrUpdateListener(listener);
EXPECT_EQ(1U, manager_->listeners().size());
Network::SocketSharedPtr listen_socket =
manager_->listeners().front().get().listenSocketFactory().getListenSocket(0);
manager_->listeners().front().get().listenSocketFactories()[0]->getListenSocket(0);
Network::UdpPacketWriterPtr udp_packet_writer =
manager_->listeners()
.front()
Expand Down