From 786fbfd79f42310e4b001db8595e454017dca4b6 Mon Sep 17 00:00:00 2001 From: malloc Date: Wed, 21 Nov 2018 16:38:54 -0600 Subject: [PATCH] smol changes in a lorg world --- src/common/sock/packet.cpp | 5 ++--- src/server/hosts/master_client.cpp | 6 +++--- src/server/sock/frame.hpp | 6 +++--- src/server/sock/pool.hpp | 4 +++- src/server/sock/scapesock.cpp | 3 +-- src/web/script.js | 2 ++ 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/common/sock/packet.cpp b/src/common/sock/packet.cpp index d261693..7015be1 100644 --- a/src/common/sock/packet.cpp +++ b/src/common/sock/packet.cpp @@ -178,9 +178,8 @@ std::string* sosc::Packet::ToString(std::string* packet) const { for(const auto& i : this->regions) *packet += i; - - packet->assign(net::htonv(packet->length()), 2, 4); - + + packet->replace(2, 4, net::htonv(packet->length())); return packet; } diff --git a/src/server/hosts/master_client.cpp b/src/server/hosts/master_client.cpp index 6b4dfc3..9648e21 100644 --- a/src/server/hosts/master_client.cpp +++ b/src/server/hosts/master_client.cpp @@ -131,12 +131,12 @@ bool sosc::MasterClient::ProcessLogin(Packet &pck) { bool sosc::MasterClient::LoginError(uint16_t error_code) { if(++this->auth_attempts < MAX_AUTH_ATTEMPTS) { this->sock.Send( - Packet(kLoginResponse, {"\0", HTONUS(error_code)}) + Packet(kLoginResponse, {std::string(1, '\0'), HTONUS(error_code)}) ); return true; } else { return this->Close( - Packet(kLoginResponse, {"\0", HTONUS(0x100)}) + Packet(kLoginResponse, {std::string(1, '\0'), HTONUS(0x100)}) ); } } @@ -171,7 +171,7 @@ bool sosc::MasterClient::ProcessRegistration(Packet &pck) { bool sosc::MasterClient::RegistrationError(uint16_t error_code) { this->sock.Send( - Packet(kRegisterResponse, {"\0", HTONUS(error_code)}) + Packet(kRegisterResponse, {std::string(1, '\0'), HTONUS(error_code)}) ); return true; } diff --git a/src/server/sock/frame.hpp b/src/server/sock/frame.hpp index f7da2a0..eef558c 100644 --- a/src/server/sock/frame.hpp +++ b/src/server/sock/frame.hpp @@ -5,9 +5,9 @@ #include #include "utils/net.hpp" -#define FRAME_OK 0 -#define FRAME_MORE 1 -#define FRAME_ERR -1 +#define FRAME_OK 0 +#define FRAME_MORE 1 +#define FRAME_ERR (-1) namespace sosc { namespace ws { diff --git a/src/server/sock/pool.hpp b/src/server/sock/pool.hpp index 7992f65..8c11c55 100644 --- a/src/server/sock/pool.hpp +++ b/src/server/sock/pool.hpp @@ -237,7 +237,6 @@ int Pool::Stack::ClientCount() { template void Pool::Stack::StackThread() { - while(this->is_running) { for(auto client = this->clients.begin(); client != this->clients.end(); @@ -255,6 +254,9 @@ void Pool::Stack::StackThread() { } this->clients_mtx.unlock(); } + + // TODO figure out a signal based system to avoid this + std::this_thread::sleep_for(std::chrono::microseconds(5)); } } diff --git a/src/server/sock/scapesock.cpp b/src/server/sock/scapesock.cpp index 0eb5a84..f821192 100644 --- a/src/server/sock/scapesock.cpp +++ b/src/server/sock/scapesock.cpp @@ -115,8 +115,7 @@ bool sosc::ScapeConnection::Send(const Packet& packet) { std::string packet_raw; packet.ToString(&packet_raw); - - return this->client.Send(packet_raw); + return this->client.Send(ws::Frame(packet_raw)); } /******************************/ diff --git a/src/web/script.js b/src/web/script.js index 12d8abf..9fc3528 100644 --- a/src/web/script.js +++ b/src/web/script.js @@ -131,6 +131,8 @@ function pack(id, regions) { } function unpack(data) { + console.log(data); + console.log(typeof data); if(!data.subarray(0, 2).every((v, i) => v === MAHOU[i])) return null;