diff options
| author | alpine <[email protected]> | 2020-06-15 22:15:02 +0200 |
|---|---|---|
| committer | alpine <[email protected]> | 2020-06-15 22:15:02 +0200 |
| commit | ede39016d04b661c7102d8d26c800acb08aa629c (patch) | |
| tree | 85f82718ab91934f57d15a6860ebdec6cf46be54 /server/src/main.cpp | |
| parent | Removed xor as it was slowing down everything alot. (diff) | |
| download | loader-ede39016d04b661c7102d8d26c800acb08aa629c.tar.xz loader-ede39016d04b661c7102d8d26c800acb08aa629c.zip | |
Finished session/user id generation.
Diffstat (limited to 'server/src/main.cpp')
| -rw-r--r-- | server/src/main.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/server/src/main.cpp b/server/src/main.cpp index 21cad38..1dfdb39 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -12,12 +12,23 @@ int main(int argc, char *argv[]) { server.connect_event.add([&](tcp::client &client) { io::logger->info("{} connected.", client.get_ip()); + + // generate unique client uid + client.gen_uid(); + + io::logger->info("generated session id {} for {}", client.get_uid(), + client.get_ip()); + + // send the assigned uid to client + tcp::packet_t packet(client.get_uid(), tcp::packet_type::write); + client.write(packet); }); server.disconnect_event.add([&](tcp::client &client) { - auto it = std::find_if(server.client_stack.begin(), server.client_stack.end(), [&](tcp::client &c) { - return client.get_socket() == client.get_socket(); - }); + auto it = std::find_if(server.client_stack.begin(), + server.client_stack.end(), [&](tcp::client &c) { + return client.get_socket() == client.get_socket(); + }); server.client_stack.erase(it); client.cleanup(); @@ -31,12 +42,11 @@ int main(int argc, char *argv[]) { io::logger->info("{} : {}", packet.uid.data(), packet.message); tcp::packet_t resp("stream", tcp::packet_type::write, "1234567890"); - client.write(resp.message.data(), resp.message.size()); + client.write(resp); std::vector<char> out; io::read_file("test.dll", out); client.stream(out); - }); std::thread t{tcp::server::monitor, std::ref(server)}; |