diff options
| author | alpine <[email protected]> | 2020-06-24 13:05:48 +0200 |
|---|---|---|
| committer | alpine <[email protected]> | 2020-06-24 13:05:48 +0200 |
| commit | 8f0130c8f74482a7d54f9bfb8763f4c6d705765c (patch) | |
| tree | e9090817a498da9ae18a58adee92f4f8ba2db03b /server/src/main.cpp | |
| parent | Changed clang format style. (diff) | |
| download | loader-8f0130c8f74482a7d54f9bfb8763f4c6d705765c.tar.xz loader-8f0130c8f74482a7d54f9bfb8763f4c6d705765c.zip | |
Added client version control.
Reverted back to google formatting.
Diffstat (limited to 'server/src/main.cpp')
| -rw-r--r-- | server/src/main.cpp | 83 |
1 files changed, 42 insertions, 41 deletions
diff --git a/server/src/main.cpp b/server/src/main.cpp index 922d768..a9c2973 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -3,58 +3,59 @@ #include "util/commands.h" #include "server/server.h" -int main(int argc, char* argv[]) -{ - io::init(false); +constexpr std::string_view client_version{"0.1.0"}; - tcp::server server("6666"); +int main(int argc, char* argv[]) { + io::init(false); - server.start(); + tcp::server server("6666"); - server.connect_event.add([&](tcp::client& client) { - auto ip = client.get_ip(); - client.gen_session(); - client.write(tcp::packet_t(std::to_string(client.version), - tcp::packet_type::write, - client.get_session())); + server.start(); - io::logger->info("{} connected", ip); - }); + server.connect_event.add([&](tcp::client& client) { + auto ip = client.get_ip(); + client.gen_session(); + client.write(tcp::packet_t(client_version, + tcp::packet_type::write, client.get_session())); - 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(); - }); + io::logger->info("{} connected", ip); + }); - server.client_stack.erase(it); - client.cleanup(); + 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(); + }); - io::logger->info("{} disconnected", client.get_ip()); - }); + server.client_stack.erase(it); + client.cleanup(); - server.receive_event.add([&](tcp::packet_t& packet, tcp::client& client) { - auto session = client.get_session(); - auto packet_session = packet.session_id; - auto ip = client.get_ip(); - auto message = packet.message; + io::logger->info("{} disconnected", client.get_ip()); + }); - if(!packet) { - io::logger->info("{} sent invalid packet", ip); - return; - } + server.receive_event.add([&](tcp::packet_t& packet, tcp::client& client) { + auto session = client.get_session(); + auto packet_session = packet.session_id; + auto ip = client.get_ip(); + auto message = packet.message; - if(packet_session != session) { - io::logger->info("{} sent wrong session id", ip); - return; - } + if (!packet) { + io::logger->info("{} sent invalid packet", ip); + return; + } - io::logger->info("{} : {}", packet_session, packet.message); + if (packet_session != session) { + io::logger->info("{} sent wrong session id", ip); + return; + } - tcp::packet_t resp(packet.message, tcp::packet_type::write, client.get_session()); - client.write(resp); - }); + io::logger->info("{} : {}", packet_session, packet.message); - std::thread t{ tcp::server::monitor, std::ref(server) }; - t.join(); + tcp::packet_t resp(packet.message, tcp::packet_type::write, + client.get_session()); + client.write(resp); + }); + + std::thread t{tcp::server::monitor, std::ref(server)}; + t.join(); } |