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.cpp86
1 files changed, 46 insertions, 40 deletions
diff --git a/server/src/client/client.cpp b/server/src/client/client.cpp
index 782017f..c4b4ed6 100644
--- a/server/src/client/client.cpp
+++ b/server/src/client/client.cpp
@@ -17,67 +17,73 @@ bool tcp::client::init_ssl(SSL_CTX *server_ctx) {
ret = SSL_accept(m_ssl);
- long result = SSL_get_verify_result(m_ssl);
-
- auto str = X509_verify_cert_error_string(result);
- io::logger->info("verify returned {}", str);
-
if (ret <= 0) {
int err = SSL_get_error(m_ssl, ret);
io::logger->error("client {} failed to accept ssl, return code {}", m_ip,
- err);
+ err);
return false;
}
return true;
}
-int tcp::client::stream(std::vector<char> &data) {
- auto size = data.size();
+void tcp::client::gen_uid() {
+ std::random_device r;
+ std::default_random_engine e1(r());
+ std::uniform_int_distribution<int> gen(33, 126);
- auto networked_size = htonl(size);
- write(&networked_size, sizeof(networked_size));
+ for(int i = 0; i < uid_len; i++) {
+ auto k = static_cast<char>(gen(e1));
+ m_uid.insert(m_uid.end(), k);
+ }
+}
- // with 4kb chunk size, speed peaks at 90mb/s
- constexpr size_t chunk_size = 4096;
- size_t sent = 0;
+int tcp::client::stream(std::vector<char> &data) {
+ auto size = data.size();
- while(size > 0) {
- auto to_send = std::min(size, chunk_size);
+ auto networked_size = htonl(size);
+ write(&networked_size, sizeof(networked_size));
- int ret = write(&data[sent], to_send);
- if(ret <= 0) {
- break;
- }
+ // with 4kb chunk size, speed peaks at 90mb/s
+ constexpr size_t chunk_size = 4096;
+ size_t sent = 0;
- sent += ret;
- size -= ret;
+ while (size > 0) {
+ auto to_send = std::min(size, chunk_size);
+
+ int ret = write(&data[sent], to_send);
+ if (ret <= 0) {
+ break;
}
- return sent;
+ sent += ret;
+ size -= ret;
}
- int tcp::client::read_stream(std::vector<char> &out) {
- size_t size;
- read(&size, sizeof(size));
+ return sent;
+}
+
+int tcp::client::read_stream(std::vector<char> &out) {
+ size_t size;
+ read(&size, sizeof(size));
- size = ntohl(size);
- out.resize(size);
+ size = ntohl(size);
+ out.resize(size);
- constexpr size_t chunk_size = 4096;
- size_t total = 0;
-
- while(size > 0) {
- auto to_read = std::min(size, chunk_size);
+ constexpr size_t chunk_size = 4096;
+ size_t total = 0;
- int ret = read(&out[total], to_read);
- if(ret <= 0) {
- break;
- }
+ while (size > 0) {
+ auto to_read = std::min(size, chunk_size);
- size -= ret;
- total += ret;
+ int ret = read(&out[total], to_read);
+ if (ret <= 0) {
+ break;
}
- return total;
- } \ No newline at end of file
+ size -= ret;
+ total += ret;
+ }
+
+ return total;
+} \ No newline at end of file