aboutsummaryrefslogtreecommitdiff
path: root/server/src/main.cpp
diff options
context:
space:
mode:
authorauth <[email protected]>2020-07-11 23:19:24 +0200
committerauth <[email protected]>2020-07-11 23:19:24 +0200
commit883aafaf87ec22aa4c9142ac5c836040a0f531b4 (patch)
tree38a73a202d815719991efeecfd3769dea7d20984 /server/src/main.cpp
parentAdded blacklist implementation on server. (diff)
downloadloader-883aafaf87ec22aa4c9142ac5c836040a0f531b4.tar.xz
loader-883aafaf87ec22aa4c9142ac5c836040a0f531b4.zip
Small changes.
Diffstat (limited to 'server/src/main.cpp')
-rw-r--r--server/src/main.cpp74
1 files changed, 41 insertions, 33 deletions
diff --git a/server/src/main.cpp b/server/src/main.cpp
index 6628712..779b610 100644
--- a/server/src/main.cpp
+++ b/server/src/main.cpp
@@ -9,14 +9,10 @@ constexpr std::string_view version{"0.1.0"};
int main(int argc, char* argv[]) {
io::init(false);
- // pe::image image("test.dll");
-
tcp::server client_server("6666");
client_server.start();
- // client_server.bl().add({"127.0.0.1", "qsmdlkjqsdmlkqmdsl"});
-
client_server.connect_event.add([&](tcp::client& client) {
auto ip = client.get_ip();
@@ -24,7 +20,7 @@ int main(int argc, char* argv[]) {
client.gen_session();
client.write(tcp::packet_t(version, tcp::packet_type::write, client(),
- tcp::packet_action::session));
+ tcp::packet_id::session));
});
client_server.disconnect_event.add([&](tcp::client& client) {
@@ -33,45 +29,55 @@ int main(int argc, char* argv[]) {
auto it = std::find_if(
client_server().begin(), client_server().end(),
[&](tcp::client& c) { return c.get_socket() == client.get_socket(); });
-
- client_server().erase(it);
+
+ if (it != client_server().end()) {
+ client_server().erase(it);
+ }
io::logger->info("{} disconnected.", client.get_ip());
});
- client_server.receive_event.add(
- [&](tcp::packet_t& packet, tcp::client& client) {
- auto session = client();
- auto packet_session = packet.session_id;
- auto ip = client.get_ip();
- auto message = packet();
- auto action = packet.act;
+ client_server.receive_event.add([&](tcp::packet_t& packet,
+ tcp::client& client) {
+ auto session = client();
+ auto packet_session = packet.session_id;
+ auto ip = client.get_ip();
+ auto message = packet();
+ auto id = packet.id;
+
+ if (!packet) {
+ io::logger->warn("{} sent invalid packet.", ip);
+
+ // client_server.disconnect_event.call(client);
+ return;
+ }
- if (!packet) {
- io::logger->info("{} sent invalid packet.", ip);
+ if (packet_session != session) {
+ io::logger->warn("{} sent wrong session id.", ip);
- //client_server.disconnect_event.call(client);
- return;
- }
+ // client_server.disconnect_event.call(client);
+ return;
+ }
- if (packet_session != session) {
- io::logger->info("{} sent wrong session id.", ip);
- io::logger->info("{} : {}", packet_session, session);
+ io::logger->info("{} : {}", packet_session, message);
- //client_server.disconnect_event.call(client);
- return;
- }
+ if (id == tcp::packet_id::hwid) {
+ client.hwid = message;
- io::logger->info("{} : {}", packet_session, message);
+ // client_server.bl().add({ip, message});
- if (action == tcp::packet_action::hwid) {
- client.hwid = message;
+ io::logger->info("got hwid from {} : {}", ip, message);
- io::logger->info("got hwid from {} : {}", ip, message);
- }
+ if (client_server.bl().find(message)) {
+ io::logger->warn("{} is hwid banned.", ip);
- client.write(tcp::packet_t(message, tcp::packet_type::write, session));
- });
+ client_server.disconnect_event.call(client);
+ return;
+ }
+ }
+
+ client.write(tcp::packet_t(message, tcp::packet_type::write, session));
+ });
client_server.timeout_event.add([&](tcp::client& client) {
client.cleanup();
@@ -80,7 +86,9 @@ int main(int argc, char* argv[]) {
client_server().begin(), client_server().end(),
[&](tcp::client& c) { return c.get_socket() == client.get_socket(); });
- client_server().erase(it);
+ if (it != client_server().end()) {
+ client_server().erase(it);
+ }
io::logger->info("{} timed out.", client.get_ip());
});