Commit aeaf64b4 authored by Max Kellermann's avatar Max Kellermann

Listen: pass EventLoop to listen_global_init()

Don't use global variables.
parent a137f817
......@@ -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;
......
......@@ -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);
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment