Listen: pass EventLoop to listen_global_init()
Don't use global variables.
This commit is contained in:
parent
a137f817f5
commit
aeaf64b467
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user