diff --git a/client/build.sh b/client/build.sh new file mode 100644 index 0000000..e69de29 diff --git a/client/deploy.bat b/client/deploy.bat deleted file mode 100644 index 5492ef4..0000000 --- a/client/deploy.bat +++ /dev/null @@ -1,7 +0,0 @@ -mkdir \\aroltd.com\aroltd\scape -mkdir \\aroltd.com\aroltd\scape\bin -copy /y /b index.html \\aroltd.com\aroltd\scape -copy /y /b error.html \\aroltd.com\aroltd\scape -copy /y /b style.css \\aroltd.com\aroltd\scape -copy /y /b bin\scape.js \\aroltd.com\aroltd\scape\bin -copy /y /b bin\lib.js \\aroltd.com\aroltd\scape\bin \ No newline at end of file diff --git a/client/index.html b/client/index.html index ca7b554..f2de955 100644 --- a/client/index.html +++ b/client/index.html @@ -59,7 +59,7 @@

LOADING

1%

-
+
diff --git a/client/js/scape.js b/client/js/scape.js index 5444380..63bedfc 100644 --- a/client/js/scape.js +++ b/client/js/scape.js @@ -1,4 +1,4 @@ -var SockContext = (function () { +var SockContext = /** @class */ (function () { function SockContext() { } Object.defineProperty(SockContext, "masterSock", { @@ -19,10 +19,10 @@ var SockContext = (function () { if (this.didInit) return; }; + SockContext.didInit = false; return SockContext; }()); -SockContext.didInit = false; -var Entrypoint = (function () { +var Entrypoint = /** @class */ (function () { function Entrypoint() { } Entrypoint.initCheck = function () { @@ -54,13 +54,13 @@ var Entrypoint = (function () { Entrypoint.ready = function () { //alert("ready"); }; + Entrypoint.initStatus = { + keyInit: false, + fileCache: false + }; return Entrypoint; }()); -Entrypoint.initStatus = { - keyInit: false, - fileCache: false -}; -var FileCache = (function () { +var FileCache = /** @class */ (function () { function FileCache() { } FileCache.initCache = function (success, error) { @@ -125,15 +125,15 @@ var FileCache = (function () { store = query.objectStore("metadata"); store.delete(fileName); }; + FileCache.dbHandle = null; return FileCache; }()); -FileCache.dbHandle = null; -var FileMeta = (function () { +var FileMeta = /** @class */ (function () { function FileMeta() { } return FileMeta; }()); -var MasterProtocol = (function () { +var MasterProtocol = /** @class */ (function () { function MasterProtocol() { } Object.defineProperty(MasterProtocol, "packetHandlers", { @@ -158,7 +158,7 @@ var MasterProtocol = (function () { }; return MasterProtocol; }()); -var SlaveProtocol = (function () { +var SlaveProtocol = /** @class */ (function () { function SlaveProtocol() { } Object.defineProperty(SlaveProtocol, "packetHandlers", { @@ -175,12 +175,12 @@ var SlaveProtocol = (function () { }; return SlaveProtocol; }()); -var Rendering = (function () { +var Rendering = /** @class */ (function () { function Rendering() { } return Rendering; }()); -var Connection = (function () { +var Connection = /** @class */ (function () { function Connection(address, handles, useCipher, onOpen, onClose, onError) { if (useCipher === void 0) { useCipher = false; } if (onOpen === void 0) { onOpen = null; } @@ -272,7 +272,7 @@ var Connection = (function () { }; return Connection; }()); -var Key = (function () { +var Key = /** @class */ (function () { function Key() { } Object.defineProperty(Key, "privateKey", { @@ -303,10 +303,10 @@ var Key = (function () { Key._privateKey = serverKey.modPow(Key.secret, modulus); return Packet.create(1 /* KeyExchange */, [clientKey.toString(16)]); }; + Key._privateKey = new bigInt(0); return Key; }()); -Key._privateKey = new bigInt(0); -var Cipher = (function () { +var Cipher = /** @class */ (function () { function Cipher() { } Object.defineProperty(Cipher, "ready", { @@ -355,10 +355,10 @@ var Cipher = (function () { Cipher.close = function () { Cipher._ready = false; }; + Cipher._ready = false; return Cipher; }()); -Cipher._ready = false; -var Packet = (function () { +var Packet = /** @class */ (function () { function Packet() { this._regions = []; } @@ -467,9 +467,14 @@ var Packet = (function () { }); return buffer; }; + Packet.magicNumber = new Uint8Array([0xB0, 0x0B]); return Packet; }()); -Packet.magicNumber = new Uint8Array([0xB0, 0x0B]); +var LoadingBar = /** @class */ (function () { + function LoadingBar() { + } + return LoadingBar; +}()); // ** STRING EXTENSIONS ** \\ String.prototype.replaceAll = function (needle, replace, ignoreCase) { if (ignoreCase === void 0) { ignoreCase = false; } @@ -619,7 +624,7 @@ bigInt.prototype.toByteArray = function (byteCount) { } return byteArray; }; -var CriticalStop = (function () { +var CriticalStop = /** @class */ (function () { function CriticalStop() { } CriticalStop.redirect = function (message) { @@ -627,7 +632,7 @@ var CriticalStop = (function () { }; return CriticalStop; }()); -var Random = (function () { +var Random = /** @class */ (function () { function Random() { } Random.generatePrime = function (bitCount) { diff --git a/client/src/ui/Loading.ts b/client/src/ui/Loading.ts new file mode 100644 index 0000000..dc673f6 --- /dev/null +++ b/client/src/ui/Loading.ts @@ -0,0 +1,5 @@ +class LoadingBar { + private static bar: HTMLElement; + private static barPercent: HTMLElement; + private static barWrapper: HTMLElement; +} \ No newline at end of file diff --git a/server/src/main.cpp b/server/src/main.cpp index e2a0f18..d333778 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -12,21 +12,32 @@ #include "utils/csprng.hpp" #include "crypto/bcrypt.hpp" #include "utils/bigint.hpp" +#include "sock/scapesock.hpp" int main(int argc, char **argv) { - sosc::TcpServer server; - sosc::TcpClient client; + sosc::ScapeServer server; + sosc::ScapeConnection client; std::string buffer; - server.Listen(8080); + if(!server.Listen(8080)) { + std::cout << "Listening failed." << std::endl; + return -1; + } std::cout << "Listening ..." << std::endl; - server.Accept(&client); - std::cout << "Reading ..." << std::endl; - while(true) { - client.Receive(&buffer, SOSC_TCP_BLOCK); - std::cout << buffer; + server.Accept(&client); + std::cout << "Shaking ..." << std::endl; + + bool loop = true; + while(loop) { + if(!client.Handshaked()) + client.Handshake(); + else + break; + //client.Receive(&buffer, SOSC_TCP_BLOCK); + //std::cout << buffer; } + server.Close(); return 0; } diff --git a/server/src/sock/intrasock.cpp b/server/src/sock/intrasock.cpp index 2369711..f82e829 100644 --- a/server/src/sock/intrasock.cpp +++ b/server/src/sock/intrasock.cpp @@ -72,16 +72,16 @@ bool sosc::IntraServer::Listen(uint16_t port) { return this->server.Listen(port); } -int sosc::IntraServer::Accept(IntraClient* client) { +bool sosc::IntraServer::Accept(IntraClient* client) { if(!this->server_open) - return -1; + return false; TcpClient new_client; if(this->server.Accept(&new_client) == 0) { client->Open(new_client); - return 0; + return true; } else - return -1; + return false; } sosc::IntraServer::~IntraServer() { diff --git a/server/src/sock/intrasock.hpp b/server/src/sock/intrasock.hpp index 3e79342..0b9cb54 100644 --- a/server/src/sock/intrasock.hpp +++ b/server/src/sock/intrasock.hpp @@ -38,7 +38,7 @@ public: IntraServer(); bool Listen(uint16_t port); - int Accept(IntraClient* client); + bool Accept(IntraClient* client); inline bool IsOpen() const { return this->server_open; diff --git a/server/src/sock/scapesock.cpp b/server/src/sock/scapesock.cpp index 19f7429..5e7afaf 100644 --- a/server/src/sock/scapesock.cpp +++ b/server/src/sock/scapesock.cpp @@ -24,8 +24,6 @@ int sosc::ScapeConnection::Handshake() { return SOSC_SHAKE_CONT; this->client.Receive(&this->buffer, SOSC_TCP_APPEND); - if(!str::contains(this->buffer, "\r\n\r\n")) - return SOSC_SHAKE_CONT; if(!str::starts(this->buffer, "GET")) { this->Close(); @@ -34,6 +32,10 @@ int sosc::ScapeConnection::Handshake() { auto lines = str::split(this->buffer, "\r\n"); + + if(!str::contains(this->buffer, "\r\n\r\n")) + return SOSC_SHAKE_CONT; + this->handshaked = true; return SOSC_SHAKE_DONE; } @@ -58,12 +60,15 @@ bool sosc::ScapeServer::Listen(uint16_t port) { return true; } -int sosc::ScapeServer::Accept(ScapeConnection* client) { +bool sosc::ScapeServer::Accept(ScapeConnection* client) { TcpClient raw_client; - int status = this->server.Accept(&raw_client); - if(status != 0) - return status; + if(!this->server.Accept(&raw_client)) + return false; - - return 0; + client->Open(raw_client); + return true; +} + +sosc::ScapeServer::~ScapeServer() { + this->Close(); } diff --git a/server/src/sock/scapesock.hpp b/server/src/sock/scapesock.hpp index 2905306..9e6321a 100644 --- a/server/src/sock/scapesock.hpp +++ b/server/src/sock/scapesock.hpp @@ -47,7 +47,7 @@ public: ScapeServer(); bool Listen(uint16_t port); - int Accept(ScapeConnection* client); + bool Accept(ScapeConnection* client); inline bool IsOpen() const { return this->server_open; diff --git a/server/src/sock/tcpsock.hpp b/server/src/sock/tcpsock.hpp index 31ca44c..1b4307a 100644 --- a/server/src/sock/tcpsock.hpp +++ b/server/src/sock/tcpsock.hpp @@ -81,7 +81,7 @@ public: TcpServer(); bool Listen(uint16_t port); - int Accept(TcpClient* client); + bool Accept(TcpClient* client); void Close(); ~TcpServer(); diff --git a/server/src/sock/tcpsock_bsd.cpp b/server/src/sock/tcpsock_bsd.cpp index 8bd0e50..05e1f42 100644 --- a/server/src/sock/tcpsock_bsd.cpp +++ b/server/src/sock/tcpsock_bsd.cpp @@ -206,9 +206,9 @@ bool sosc::TcpServer::Listen(uint16_t port) { return true; } -int sosc::TcpServer::Accept(TcpClient* client) { +bool sosc::TcpServer::Accept(TcpClient* client) { if(!this->sock_open) - return -1; + return false; SOSC_SOCK_T sock; SOSC_ADDR_T addr; @@ -217,12 +217,12 @@ int sosc::TcpServer::Accept(TcpClient* client) { sock = accept(this->sock, (struct sockaddr*)&addr, &addr_len); if(sock < 0) { this->Close(); - return -1; + return false; } client->Close(); client->Open(sock, addr, addr_len); - return 0; + return true; } void sosc::TcpServer::Close() {