summaryrefslogtreecommitdiff
path: root/src/identd/identd_socket.hpp
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2016-11-15 00:23:19 +0100
committerlouiz’ <louiz@louiz.org>2016-11-15 00:23:19 +0100
commitd872c2b49214c0a4db40a9e2d860802d9eedc563 (patch)
treecccd27de262b2823d126a48c82455d208696dbdc /src/identd/identd_socket.hpp
parented7e66471f7018f2e7e1c6a469e5cd758b913255 (diff)
downloadbiboumi-d872c2b49214c0a4db40a9e2d860802d9eedc563.tar.gz
biboumi-d872c2b49214c0a4db40a9e2d860802d9eedc563.tar.bz2
biboumi-d872c2b49214c0a4db40a9e2d860802d9eedc563.tar.xz
biboumi-d872c2b49214c0a4db40a9e2d860802d9eedc563.zip
Support the ident protocol
fix #3211
Diffstat (limited to 'src/identd/identd_socket.hpp')
-rw-r--r--src/identd/identd_socket.hpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/identd/identd_socket.hpp b/src/identd/identd_socket.hpp
new file mode 100644
index 0000000..6d6cc1d
--- /dev/null
+++ b/src/identd/identd_socket.hpp
@@ -0,0 +1,44 @@
+#pragma once
+
+#include <network/socket_handler.hpp>
+
+#include <cassert>
+#include <network/tcp_socket_handler.hpp>
+
+#include <logger/logger.hpp>
+#include <xmpp/biboumi_component.hpp>
+
+class XmppComponent;
+class IdentdSocket;
+class IdentdServer;
+template <typename T>
+class TcpSocketServer;
+
+class IdentdSocket: public TCPSocketHandler
+{
+ public:
+ IdentdSocket(std::shared_ptr<Poller> poller, const socket_t socket, TcpSocketServer<IdentdSocket>& server);
+ ~IdentdSocket() = default;
+ std::string generate_answer(const BiboumiComponent& biboumi, uint16_t local, uint16_t remote);
+
+ void parse_in_buffer(const std::size_t size) override final;
+ void on_connection_close(const std::string& message) override final
+ {}
+
+ bool is_connected() const override final
+ {
+ return true;
+ }
+ bool is_connecting() const override final
+ {
+ return false;
+ }
+
+ private:
+ void connect() override
+ { assert(false); }
+ void on_connection_failed(const std::string&) override final
+ { assert(false); }
+
+ IdentdServer& server;
+};