aboutsummaryrefslogtreecommitdiff
path: root/server/src/main.cpp
diff options
context:
space:
mode:
authoralpine <[email protected]>2020-06-15 22:15:02 +0200
committeralpine <[email protected]>2020-06-15 22:15:02 +0200
commitede39016d04b661c7102d8d26c800acb08aa629c (patch)
tree85f82718ab91934f57d15a6860ebdec6cf46be54 /server/src/main.cpp
parentRemoved xor as it was slowing down everything alot. (diff)
downloadloader-ede39016d04b661c7102d8d26c800acb08aa629c.tar.xz
loader-ede39016d04b661c7102d8d26c800acb08aa629c.zip
Finished session/user id generation.
Diffstat (limited to 'server/src/main.cpp')
-rw-r--r--server/src/main.cpp20
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)};