aboutsummaryrefslogtreecommitdiff
path: root/server/src/client/client.cpp
diff options
context:
space:
mode:
authoralpine <[email protected]>2020-06-13 22:27:52 +0200
committeralpine <[email protected]>2020-06-13 22:27:52 +0200
commitbad7b4f2d19f95b278fdcb3056be01cae9af1dbb (patch)
tree5bef91f910a2c03d74df9693a077ee33b2fe7886 /server/src/client/client.cpp
parentInitial commit (diff)
downloadloader-bad7b4f2d19f95b278fdcb3056be01cae9af1dbb.tar.xz
loader-bad7b4f2d19f95b278fdcb3056be01cae9af1dbb.zip
Client.
Message encryption. Packet handler. Disconnect event handler.
Diffstat (limited to 'server/src/client/client.cpp')
-rw-r--r--server/src/client/client.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/server/src/client/client.cpp b/server/src/client/client.cpp
new file mode 100644
index 0000000..4c458c8
--- /dev/null
+++ b/server/src/client/client.cpp
@@ -0,0 +1,27 @@
+#include "../include.h"
+#include "../util/io.h"
+#include "client.h"
+
+bool tcp::client::init_ssl(SSL_CTX *server_ctx) {
+ m_ssl = SSL_new(server_ctx);
+ if (!m_ssl) {
+ io::logger->error("failed to create ssl on client {}.", m_ip);
+ return false;
+ }
+
+ int ret = SSL_set_fd(m_ssl, m_socket);
+ if (ret <= 0) {
+ io::logger->error("failed to set descriptor on client {}.", m_ip);
+ return false;
+ }
+
+ ret = SSL_accept(m_ssl);
+ if (ret <= 0) {
+ int err = SSL_get_error(m_ssl, ret);
+ io::logger->error("client {} failed to accept ssl, return code {}", m_ip,
+ err);
+ return false;
+ }
+
+ return true;
+} \ No newline at end of file