From 5bc9356f044ddf884ab3d8bb41fa58f917b6975e Mon Sep 17 00:00:00 2001 From: malloc Date: Tue, 16 Oct 2018 16:36:43 -0500 Subject: [PATCH] you can look at this one its ok --- PROTOCOL.md | 10 +++++----- src/client/sock/socket.cpp | 5 +++++ src/client/sock/socket.hpp | 4 ++++ src/{server => common}/sock/packet.cpp | 8 +++----- src/{server => common}/sock/packet.hpp | 0 src/server/hosts/master.hpp | 8 ++++++-- src/server/hosts/master_client.cpp | 7 ++++++- src/server/sock/intrasock.hpp | 2 +- src/server/sock/scapesock.hpp | 2 +- 9 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 src/client/sock/socket.cpp create mode 100644 src/client/sock/socket.hpp rename src/{server => common}/sock/packet.cpp (96%) rename src/{server => common}/sock/packet.hpp (100%) diff --git a/PROTOCOL.md b/PROTOCOL.md index be888e8..812ab79 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -163,7 +163,7 @@ Communication between the master server and clients will be done over a WebSocke @@ -197,7 +197,7 @@ Communication between the master server and clients will be done over a WebSocke
- ID 0: Login Attempt
+ ID 0: Login Response
Responder
@@ -221,7 +221,7 @@ Communication between the master server and clients will be done over a WebSocke
- ID 1: Registration Attempt
+ ID 1: Registration Response
Responder
@@ -256,7 +256,7 @@ Communication between the master server and clients will be done over a WebSocke
- ID 2: Server List Request
+ ID 2: Server Listing
Responder
@@ -285,7 +285,7 @@ Communication between the master server and clients will be done over a WebSocke
- ID 0: Login Attempt
+ ID 0: Login Request
Requester
diff --git a/src/client/sock/socket.cpp b/src/client/sock/socket.cpp new file mode 100644 index 0000000..618a9d5 --- /dev/null +++ b/src/client/sock/socket.cpp @@ -0,0 +1,5 @@ +// +// Created by alec on 10/16/2018. +// + +#include "socket.hpp" diff --git a/src/client/sock/socket.hpp b/src/client/sock/socket.hpp new file mode 100644 index 0000000..9af6996 --- /dev/null +++ b/src/client/sock/socket.hpp @@ -0,0 +1,4 @@ +#ifndef SOSC_CLIENT_SOCKET_H +#define SOSC_CLIENT_SOCKET_H + +#endif diff --git a/src/server/sock/packet.cpp b/src/common/sock/packet.cpp similarity index 96% rename from src/server/sock/packet.cpp rename to src/common/sock/packet.cpp index 0801eba..3e1ffeb 100644 --- a/src/server/sock/packet.cpp +++ b/src/common/sock/packet.cpp @@ -1,4 +1,4 @@ -#include "packet.hpp" +#include "sock/packet.hpp" sosc::Packet::Packet() { this->id = 0; @@ -151,8 +151,7 @@ std::string* sosc::Packet::ToString(std::string* packet) const { (*packet)[1] = 0x0B; (*packet)[6] = this->id; (*packet)[7] = regions.size(); - - //for(auto i = this->regions.begin(); i != this->regions.end(); ++i) { + for(const auto& i : this->regions) { if(i.size() < 0xFE) *packet += (char)i.size(); @@ -164,8 +163,7 @@ std::string* sosc::Packet::ToString(std::string* packet) const { *packet += net::htonv(i.size()); } } - - //for(auto i = this->regions.begin(); i != this->regions.end(); ++i) + for(const auto& i : this->regions) *packet += i; diff --git a/src/server/sock/packet.hpp b/src/common/sock/packet.hpp similarity index 100% rename from src/server/sock/packet.hpp rename to src/common/sock/packet.hpp diff --git a/src/server/hosts/master.hpp b/src/server/hosts/master.hpp index 3acc43b..7810bc7 100644 --- a/src/server/hosts/master.hpp +++ b/src/server/hosts/master.hpp @@ -24,11 +24,15 @@ public: bool Close(const Packet& message); private: enum MasterToClientId { - + kLoginResponse = 0, + kRegisterResponse, + kServerList }; enum ClientToMasterId { - + kLoginRequest = 0, + kRegisterRequest, + kServerListRequest }; ScapeConnection sock; diff --git a/src/server/hosts/master_client.cpp b/src/server/hosts/master_client.cpp index 0c6ef12..b577e59 100644 --- a/src/server/hosts/master_client.cpp +++ b/src/server/hosts/master_client.cpp @@ -54,5 +54,10 @@ sosc::MasterClient::MasterClient(const ScapeConnection &client) { } bool sosc::MasterClient::Process(const db::Queries *queries) { - + Packet pck; + int status = this->sock.Receive(&pck); + if(status == PCK_ERR) + return this->Close(); + else if(status == PCK_MORE) + return true; } \ No newline at end of file diff --git a/src/server/sock/intrasock.hpp b/src/server/sock/intrasock.hpp index c88f7c2..ab44d15 100644 --- a/src/server/sock/intrasock.hpp +++ b/src/server/sock/intrasock.hpp @@ -2,7 +2,7 @@ #define SOSC_INTSOCK_H #include "tcpsock.hpp" -#include "packet.hpp" +#include "sock/packet.hpp" namespace sosc { class IntraClient { diff --git a/src/server/sock/scapesock.hpp b/src/server/sock/scapesock.hpp index 2d366c6..6283ca9 100644 --- a/src/server/sock/scapesock.hpp +++ b/src/server/sock/scapesock.hpp @@ -4,8 +4,8 @@ #include #include "crypto/sha1.hpp" #include "crypto/base64.hpp" +#include "sock/packet.hpp" #include "frame.hpp" -#include "packet.hpp" #include "tcpsock.hpp" #define SOSC_SHAKE_ERR (-1)
- ID 1: Registration Attempt
+ ID 1: Registration Request
Requester