aboutsummaryrefslogtreecommitdiff
path: root/server/src/client/client.cpp
diff options
context:
space:
mode:
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