aboutsummaryrefslogtreecommitdiff
path: root/server/src/client/client.h
diff options
context:
space:
mode:
authorauth <[email protected]>2020-07-02 14:20:45 +0200
committerauth <[email protected]>2020-07-02 14:20:45 +0200
commit8c78e28b7ff3fbc7f6a84b6adc417e1ce6ca13a3 (patch)
tree50c160f522ac1b4ba15d6ea471eed913bdc7b246 /server/src/client/client.h
parentAdded json implementation for packets. (diff)
downloadloader-8c78e28b7ff3fbc7f6a84b6adc417e1ce6ca13a3.tar.xz
loader-8c78e28b7ff3fbc7f6a84b6adc417e1ce6ca13a3.zip
Added client timeout.
Added json imports for pe images. Added wrapper to support streaming strings.
Diffstat (limited to 'server/src/client/client.h')
-rw-r--r--server/src/client/client.h25
1 files changed, 20 insertions, 5 deletions
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; }