diff --git a/src/client/sock/socket.cpp b/src/client/sock/socket.cpp index 618a9d5..874b20e 100644 --- a/src/client/sock/socket.cpp +++ b/src/client/sock/socket.cpp @@ -1,5 +1 @@ -// -// Created by alec on 10/16/2018. -// - #include "socket.hpp" diff --git a/src/client/sock/socket.hpp b/src/client/sock/socket.hpp index 9af6996..d17bd0a 100644 --- a/src/client/sock/socket.hpp +++ b/src/client/sock/socket.hpp @@ -1,4 +1,6 @@ -#ifndef SOSC_CLIENT_SOCKET_H -#define SOSC_CLIENT_SOCKET_H +#ifndef SOSC_NET_SOCKET_H +#define SOSC_NET_SOCKET_H + + #endif diff --git a/src/server/hosts/master.hpp b/src/server/hosts/master.hpp index 7810bc7..29a6acf 100644 --- a/src/server/hosts/master.hpp +++ b/src/server/hosts/master.hpp @@ -36,6 +36,7 @@ private: }; ScapeConnection sock; + const db::Queries* queries; bool authed; int auth_attempts; diff --git a/src/server/hosts/master_client.cpp b/src/server/hosts/master_client.cpp index b577e59..bb19752 100644 --- a/src/server/hosts/master_client.cpp +++ b/src/server/hosts/master_client.cpp @@ -54,10 +54,28 @@ sosc::MasterClient::MasterClient(const ScapeConnection &client) { } bool sosc::MasterClient::Process(const db::Queries *queries) { + if(!this->sock.Handshaked()) + return (this->sock.Handshake() != WS_SHAKE_ERR); + Packet pck; int status = this->sock.Receive(&pck); if(status == PCK_ERR) return this->Close(); else if(status == PCK_MORE) return true; + + this->queries = queries; + switch(pck.GetId()) { + case kLoginRequest: + + break; + case kRegisterRequest: + + break; + case kServerListRequest: + + break; + default: + return this->Close(); + } } \ No newline at end of file diff --git a/src/server/sock/scapesock.cpp b/src/server/sock/scapesock.cpp index 53f4bf0..10dfc02 100644 --- a/src/server/sock/scapesock.cpp +++ b/src/server/sock/scapesock.cpp @@ -16,22 +16,22 @@ void sosc::ScapeConnection::Open(const TcpClient& client) { int sosc::ScapeConnection::Handshake() { if(this->handshaked) - return SOSC_SHAKE_DONE; + return WS_SHAKE_DONE; if(!this->client_open) - return SOSC_SHAKE_ERR; + return WS_SHAKE_ERR; if(!this->client.IsDataReady()) - return SOSC_SHAKE_CONT; + return WS_SHAKE_CONT; this->client.Receive(&this->buffer, SOSC_TCP_APPEND); if(!str::starts(this->buffer, "GET")) { this->Close(); - return SOSC_SHAKE_ERR; + return WS_SHAKE_ERR; } if(!str::contains(this->buffer, "\r\n\r\n")) - return SOSC_SHAKE_CONT; + return WS_SHAKE_CONT; std::string websocket_key = ""; auto lines = str::split(this->buffer, "\r\n"); @@ -50,7 +50,7 @@ int sosc::ScapeConnection::Handshake() { if(websocket_key.empty()) { this->Close(); - return SOSC_SHAKE_ERR; + return WS_SHAKE_ERR; } websocket_key += "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; @@ -64,7 +64,7 @@ int sosc::ScapeConnection::Handshake() { this->client.Send(stream.str()); this->handshaked = true; - return SOSC_SHAKE_DONE; + return WS_SHAKE_DONE; } int sosc::ScapeConnection::Receive(Packet* packet, bool block) { diff --git a/src/server/sock/scapesock.hpp b/src/server/sock/scapesock.hpp index 6283ca9..aabb797 100644 --- a/src/server/sock/scapesock.hpp +++ b/src/server/sock/scapesock.hpp @@ -8,9 +8,9 @@ #include "frame.hpp" #include "tcpsock.hpp" -#define SOSC_SHAKE_ERR (-1) -#define SOSC_SHAKE_CONT 0 -#define SOSC_SHAKE_DONE 1 +#define WS_SHAKE_ERR (-1) +#define WS_SHAKE_CONT 0 +#define WS_SHAKE_DONE 1 namespace sosc { class ScapeConnection {