aboutsummaryrefslogtreecommitdiff
path: root/server/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/client')
-rw-r--r--server/src/client/client.cpp6
-rw-r--r--server/src/client/client.h25
2 files changed, 23 insertions, 8 deletions
diff --git a/server/src/client/client.cpp b/server/src/client/client.cpp
index 75b25f2..1163ab5 100644
--- a/server/src/client/client.cpp
+++ b/server/src/client/client.cpp
@@ -5,13 +5,13 @@
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);
+ io::logger->error("failed to create ssl on {}.", 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);
+ io::logger->error("failed to set descriptor on {}.", m_ip);
return false;
}
@@ -19,7 +19,7 @@ bool tcp::client::init_ssl(SSL_CTX* server_ctx) {
if (ret <= 0) {
int err = SSL_get_error(m_ssl, ret);
- io::logger->error("client {} failed to accept ssl, return code {}", m_ip,
+ io::logger->error("{} failed to accept ssl, return code {}", m_ip,
err);
return false;
}
diff --git a/server/src/client/client.h b/server/src/client/client.h
index 1dbb8d5..52e0c42 100644
--- a/server/src/client/client.h
+++ b/server/src/client/client.h
@@ -7,7 +7,7 @@ class client {
int m_socket;
SSL* m_ssl;
- time_t m_time;
+ std::time_t m_time;
std::string m_ip;
std::string m_session_id;
@@ -26,20 +26,35 @@ class client {
SSL_free(m_ssl);
}
- int write(const void* data, size_t size) {
- return SSL_write(m_ssl, data, size);
- }
+ void reset() { std::time(&m_time); }
+ bool timeout() { return std::difftime(std::time(nullptr), m_time) >= 30; }
int write(const packet_t& packet) {
if (!packet) return 0;
return write(packet.message.data(), packet.message.size());
}
+ int write(const void* data, size_t size) {
+ return SSL_write(m_ssl, data, size);
+ }
+
int read(void* data, size_t size) { return SSL_read(m_ssl, data, size); }
- int stream(std::vector<char>& data, float *dur = nullptr);
+ int stream(std::vector<char>& data, float* dur = nullptr);
int read_stream(std::vector<char>& out);
+ int stream(std::string &str) {
+ std::vector<char> vec(str.begin(), str.end());
+ return stream(vec);
+ }
+
+ int read_stream(std::string &str) {
+ std::vector<char> out;
+ int ret = read_stream(out);
+ str.assign(out.begin(), out.end());
+ return ret;
+ }
+
void gen_session();
int get_socket() { return m_socket; }