summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--src/Listen.cxx17
-rw-r--r--src/client/Listener.cxx32
-rw-r--r--src/client/Listener.hxx40
4 files changed, 74 insertions, 16 deletions
diff --git a/Makefile.am b/Makefile.am
index a9a6d1e28..cb08b832a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -105,6 +105,7 @@ libmpd_a_SOURCES = \
src/decoder/DecoderPlugin.hxx \
src/decoder/Bridge.cxx src/decoder/Bridge.hxx \
src/decoder/DecoderPrint.cxx src/decoder/DecoderPrint.hxx \
+ src/client/Listener.cxx src/client/Listener.hxx \
src/client/Client.cxx src/client/Client.hxx \
src/client/ClientInternal.hxx \
src/client/ClientEvent.cxx \
diff --git a/src/Listen.cxx b/src/Listen.cxx
index ae5d9d050..6873f7c3c 100644
--- a/src/Listen.cxx
+++ b/src/Listen.cxx
@@ -19,7 +19,7 @@
#include "config.h"
#include "Listen.hxx"
-#include "client/Client.hxx"
+#include "client/Listener.hxx"
#include "config/Param.hxx"
#include "config/ConfigGlobal.hxx"
#include "config/ConfigOption.hxx"
@@ -43,21 +43,6 @@ static constexpr Domain listen_domain("listen");
#define DEFAULT_PORT 6600
-class ClientListener final : public ServerSocket {
- Partition &partition;
-
-public:
- ClientListener(EventLoop &_loop, Partition &_partition)
- :ServerSocket(_loop), partition(_partition) {}
-
-private:
- void OnAccept(UniqueSocketDescriptor fd,
- SocketAddress address, int uid) override {
- client_new(GetEventLoop(), partition,
- std::move(fd), address, uid);
- }
-};
-
static ClientListener *listen_socket;
int listen_port;
diff --git a/src/client/Listener.cxx b/src/client/Listener.cxx
new file mode 100644
index 000000000..4747e4e59
--- /dev/null
+++ b/src/client/Listener.cxx
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2003-2018 The Music Player Daemon Project
+ * http://www.musicpd.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+#include "Listener.hxx"
+#include "Client.hxx"
+#include "net/UniqueSocketDescriptor.hxx"
+#include "net/SocketAddress.hxx"
+
+void
+ClientListener::OnAccept(UniqueSocketDescriptor fd,
+ SocketAddress address, int uid) noexcept
+{
+ client_new(GetEventLoop(), partition,
+ std::move(fd), address, uid);
+}
diff --git a/src/client/Listener.hxx b/src/client/Listener.hxx
new file mode 100644
index 000000000..d889b9d1c
--- /dev/null
+++ b/src/client/Listener.hxx
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2003-2018 The Music Player Daemon Project
+ * http://www.musicpd.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef MPD_CLIENT_LISTENER_HXX
+#define MPD_CLIENT_LISTENER_HXX
+
+#include "check.h"
+#include "event/ServerSocket.hxx"
+
+struct Partition;
+
+class ClientListener final : public ServerSocket {
+ Partition &partition;
+
+public:
+ ClientListener(EventLoop &_loop, Partition &_partition)
+ :ServerSocket(_loop), partition(_partition) {}
+
+private:
+ void OnAccept(UniqueSocketDescriptor fd,
+ SocketAddress address, int uid) noexcept override;
+};
+
+#endif