From aeaf64b46757e64bf32e945d52df2c4d447e5aa4 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 29 Jan 2014 18:32:28 +0100 Subject: Listen: pass EventLoop to listen_global_init() Don't use global variables. --- src/Listen.cxx | 10 ++++------ src/Listen.hxx | 3 ++- src/Main.cxx | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Listen.cxx b/src/Listen.cxx index faa3e0db1..731f51196 100644 --- a/src/Listen.cxx +++ b/src/Listen.cxx @@ -44,12 +44,12 @@ static constexpr Domain listen_domain("listen"); class ClientListener final : public ServerSocket { public: - ClientListener():ServerSocket(*main_loop) {} + ClientListener(EventLoop &_loop):ServerSocket(_loop) {} private: virtual void OnAccept(int fd, const sockaddr &address, size_t address_length, int uid) { - client_new(*main_loop, *instance->partition, + client_new(GetEventLoop(), *instance->partition, fd, &address, address_length, uid); } }; @@ -101,16 +101,14 @@ listen_systemd_activation(Error &error_r) } bool -listen_global_init(Error &error) +listen_global_init(EventLoop &loop, Error &error) { - assert(main_loop != nullptr); - int port = config_get_positive(CONF_PORT, DEFAULT_PORT); const struct config_param *param = config_get_next_param(CONF_BIND_TO_ADDRESS, nullptr); bool success; - listen_socket = new ClientListener(); + listen_socket = new ClientListener(loop); if (listen_systemd_activation(error)) return true; diff --git a/src/Listen.hxx b/src/Listen.hxx index f14ec665c..8be0999ea 100644 --- a/src/Listen.hxx +++ b/src/Listen.hxx @@ -20,12 +20,13 @@ #ifndef MPD_LISTEN_HXX #define MPD_LISTEN_HXX +class EventLoop; class Error; extern int listen_port; bool -listen_global_init(Error &error); +listen_global_init(EventLoop &loop, Error &error); void listen_global_finish(void); diff --git a/src/Main.cxx b/src/Main.cxx index 87a35eca2..86ac7fc7a 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -413,7 +413,7 @@ int mpd_main(int argc, char *argv[]) const unsigned max_clients = config_get_positive(CONF_MAX_CONN, 10); instance->client_list = new ClientList(max_clients); - if (!listen_global_init(error)) { + if (!listen_global_init(*main_loop, error)) { LogError(error); return EXIT_FAILURE; } -- cgit v1.2.3