From 77b52da44b263df4884be2f35f885d8edccbb6fa Mon Sep 17 00:00:00 2001 From: boris Date: Wed, 19 Dec 2018 00:13:24 +1300 Subject: added new loader project :) merry christmas --- csgo-loader/csgo-server/Networking/WebSocket.cpp | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 csgo-loader/csgo-server/Networking/WebSocket.cpp (limited to 'csgo-loader/csgo-server/Networking/WebSocket.cpp') diff --git a/csgo-loader/csgo-server/Networking/WebSocket.cpp b/csgo-loader/csgo-server/Networking/WebSocket.cpp new file mode 100644 index 0000000..755e89b --- /dev/null +++ b/csgo-loader/csgo-server/Networking/WebSocket.cpp @@ -0,0 +1,44 @@ +#include + +namespace Networking { + // Initialises a basic HTTP socket. + bool WebSocket::Start(const char *Address, const char *Username, const char *Password) { + m_Internet = InternetOpenA("none", INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0); + + if(!m_Internet) + return false; + + m_Address = InternetConnectA(m_Internet, Address, INTERNET_DEFAULT_HTTPS_PORT, Username, Password, INTERNET_SERVICE_HTTP, 0, 0); + + if(!m_Address) + return false; + + return true; + } + + // Receives a response from a request. + ByteArray WebSocket::Request(const char *File, const char *Header, ByteArray &Data) { + ByteArray Response; + InternetHandle WebRequest = HttpOpenRequestA(m_Address, "POST", File, 0, 0, 0, INTERNET_FLAG_SECURE | INTERNET_FLAG_KEEP_CONNECTION, 0); + + // Make connection request. + bool Sent = HttpSendRequestA(WebRequest, Header, (DWORD)strlen(Header), Data.data(), (DWORD)Data.size()); + + if(Sent) { + DWORD ReceivedSize{}; + + uint8_t *Block = (uint8_t *)malloc(4096); + + // Read response. + while(InternetReadFile(WebRequest, Block, 4096, &ReceivedSize)) { + for(size_t n{}; n < std::min< int >(4096, ReceivedSize); ++n) { + Response.push_back(Block[n]); + } + } + + free(Block); + } + + return Response; + } +} \ No newline at end of file -- cgit v1.2.3