diff options
author | Max Kellermann <max@duempel.org> | 2013-01-30 13:20:27 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-01-30 14:16:04 +0100 |
commit | fa51db449fdb9558a4cb4542a86437ac9dd3ddbd (patch) | |
tree | 7ecc27850e582fc6b4233bd316dcb079d0702341 /src/Listen.cxx | |
parent | cb9a05ac77034fdcefc0d574e768afe0a1b86327 (diff) | |
download | mpd-fa51db449fdb9558a4cb4542a86437ac9dd3ddbd.tar.gz mpd-fa51db449fdb9558a4cb4542a86437ac9dd3ddbd.tar.xz mpd-fa51db449fdb9558a4cb4542a86437ac9dd3ddbd.zip |
ServerSocket: replace callback with virtual method
Diffstat (limited to 'src/Listen.cxx')
-rw-r--r-- | src/Listen.cxx | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/Listen.cxx b/src/Listen.cxx index e56a0ead2..26c9e100d 100644 --- a/src/Listen.cxx +++ b/src/Listen.cxx @@ -36,16 +36,20 @@ #define DEFAULT_PORT 6600 -static ServerSocket *listen_socket; -int listen_port; +class ClientListener final : public ServerSocket { +public: + ClientListener():ServerSocket(*main_loop) {} + +private: + virtual void OnAccept(int fd, const sockaddr &address, + size_t address_length, int uid) { + client_new(*main_loop, *global_partition, + fd, &address, address_length, uid); + } +}; -static void -listen_callback(int fd, const struct sockaddr *address, - size_t address_length, int uid, G_GNUC_UNUSED void *ctx) -{ - client_new(*main_loop, *global_partition, - fd, address, address_length, uid); -} +static ClientListener *listen_socket; +int listen_port; static bool listen_add_config_param(unsigned int port, @@ -98,7 +102,7 @@ listen_global_init(GError **error_r) bool success; GError *error = NULL; - listen_socket = new ServerSocket(*main_loop, listen_callback, nullptr); + listen_socket = new ClientListener(); if (listen_systemd_activation(&error)) return true; |