diff options
Diffstat (limited to 'client/src/main.cpp')
| -rw-r--r-- | client/src/main.cpp | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/client/src/main.cpp b/client/src/main.cpp index 3cc3c77..fef9fca 100644 --- a/client/src/main.cpp +++ b/client/src/main.cpp @@ -2,40 +2,42 @@ #include "util/io.h" #include "client/client.h" -int main(int argc, char* argv[]) -{ - io::init(); +int main(int argc, char* argv[]) { + io::init(); - tcp::client client; + tcp::client client; - std::thread t{ tcp::client::monitor, std::ref(client) }; - t.detach(); + std::thread t{tcp::client::monitor, std::ref(client)}; + t.detach(); - if(client.start("127.0.0.1", 6666)) { - io::logger->info("connected."); - client.set_state(tcp::client_state::active); - } + client.start("127.0.0.1", 6666); - client.receive_event.add([&](tcp::packet_t& packet) { - if(!packet) - return; + client.receive_event.add([&](tcp::packet_t& packet) { + if (!packet) return; - // first packet is the session id and current version - if(packet.id == 1) { - client.session_id = packet.session_id; - } + // first packet is the session id and current version + if (packet.id == 1) { + client.session_id = packet.session_id; + tcp::version_t v; + auto version = fmt::format("{}.{}.{}", v.major, v.minor, v.patch); + if(version != packet.message) { + io::logger->error("please update your client"); + client.shutdown(); + return; + } + } - io::logger->info("{}:{}->{}", packet.id, packet.session_id, packet.message); - }); + io::logger->info("{}:{}->{}", packet.id, packet.session_id, packet.message); + }); - while(client) { - std::string p; - getline(std::cin, p); + while (client) { + std::string p; + getline(std::cin, p); - int ret = - client.write(tcp::packet_t(p, tcp::packet_type::write, client.session_id)); - if(ret <= 0) { - break; - } + int ret = client.write( + tcp::packet_t(p, tcp::packet_type::write, client.session_id)); + if (ret <= 0) { + break; } + } } |