From c5c144128718dd7394fd9ddf11dfb500c17d649b Mon Sep 17 00:00:00 2001 From: malloc Date: Tue, 24 Jul 2018 16:41:22 -0500 Subject: [PATCH] smol --- server/src/hosts/master.hpp | 1 + server/src/hosts/master_client.cpp | 7 ++++ server/src/hosts/slave.hpp | 6 +-- server/src/main.cpp | 66 ++++++++++++++---------------- server/src/sock/scapesock.cpp | 1 + 5 files changed, 43 insertions(+), 38 deletions(-) diff --git a/server/src/hosts/master.hpp b/server/src/hosts/master.hpp index 708eee3..9eca8bc 100644 --- a/server/src/hosts/master.hpp +++ b/server/src/hosts/master.hpp @@ -26,6 +26,7 @@ private: class MasterClientPool : public Pool { protected: + void SetupQueries(Queries* queries) override; bool ProcessClient(MasterClient& client, const Queries* queries) override { // TODO implement return true; diff --git a/server/src/hosts/master_client.cpp b/server/src/hosts/master_client.cpp index 2092c57..99bab0e 100644 --- a/server/src/hosts/master_client.cpp +++ b/server/src/hosts/master_client.cpp @@ -1,2 +1,9 @@ #include "master.hpp" +/** MASTERCLIENTPOOL CODE **/ + +void sosc::MasterClientPool::SetupQueries(Queries *queries) { + +} + +/** MASTERCLIENT CODE **/ \ No newline at end of file diff --git a/server/src/hosts/slave.hpp b/server/src/hosts/slave.hpp index 0220a40..9246161 100644 --- a/server/src/hosts/slave.hpp +++ b/server/src/hosts/slave.hpp @@ -9,14 +9,14 @@ namespace sosc { class SlaveClient { public: - SlaveClient(const ScapeConnection& client); + explicit SlaveClient(const ScapeConnection& client); private: ScapeConnection sock; }; -class SlaveClientPool : Pool { +class SlaveClientPool : public Pool { protected: - bool ProcessClient(SlaveClient*& client) override { + bool ProcessClient(SlaveClient& client, const Queries* queries) override { // TODO implement return true; } diff --git a/server/src/main.cpp b/server/src/main.cpp index 4fa53e4..afe33d8 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -19,36 +19,20 @@ #include "hosts/master.hpp" #include "hosts/slave.hpp" -bool master_intra(uint16_t port); -bool master_client(uint16_t port); -bool slave(uint16_t port); +bool master_intra(uint16_t port, const sosc::poolinfo_t& info); +bool master_client(uint16_t port, const sosc::poolinfo_t& info); +bool slave(uint16_t port, const sosc::poolinfo_t& info); int main(int argc, char **argv) { - sosc::ScapeServer server; - sosc::ScapeConnection client; - std::string buffer; - - if(!server.Listen(8080)) { - std::cout << "Listening failed." << std::endl; + if(argc < 2) return -1; + + if(argv[1][0] == 'm') { + master_intra(1234, sosc::poolinfo_t()); + } else { + slave(1234, sosc::poolinfo_t()); } - std::cout << "Listening ..." << std::endl; - - bool check = server.Accept(&client); - std::cout << "Shaking ..." << std::endl; - - bool loop = true; - while(loop) { - if(!client.Handshaked()) - client.Handshake(); - else { - sosc::Packet pck; - client.Receive(&pck, true); - std::cout << pck.RegionCount() << std::endl; - } - } - - server.Close(); + return 0; } @@ -71,17 +55,29 @@ bool master_intra(uint16_t port, const sosc::poolinfo_t& info) { return true; } -bool master_client(uint16_t port, sosc::poolinfo_t info) { - /* - auto pooler = std::thread([&]() { - - }); - */ - +bool master_client(uint16_t port, const sosc::poolinfo_t& info) { + using namespace sosc; + return true; } -bool slave(uint16_t port, sosc::poolinfo_t info) { - +bool slave(uint16_t port, const sosc::poolinfo_t& info) { + using namespace sosc; + + + + ScapeServer server; + ScapeConnection client; + if(!server.Listen(port)) + return false; + + SlaveClientPool pool; + pool.Configure(info); + pool.Start(); + + while(server.Accept(&client)) + pool.AddClient(SlaveClient(client)); + + pool.Stop(); return true; } diff --git a/server/src/sock/scapesock.cpp b/server/src/sock/scapesock.cpp index 7bddf43..71c10ac 100644 --- a/server/src/sock/scapesock.cpp +++ b/server/src/sock/scapesock.cpp @@ -21,6 +21,7 @@ bool sosc::ScapeConnection::IsCiphered() const { void sosc::ScapeConnection::SetCipher(cgc::Cipher* cipher) { this->cipher = cipher; + cipher->Parse(&this->buffer); } int sosc::ScapeConnection::Handshake() {