summaryrefslogtreecommitdiff
path: root/csgo-loader/csgo-server/Networking/WebSocket.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'csgo-loader/csgo-server/Networking/WebSocket.hpp')
-rw-r--r--csgo-loader/csgo-server/Networking/WebSocket.hpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/csgo-loader/csgo-server/Networking/WebSocket.hpp b/csgo-loader/csgo-server/Networking/WebSocket.hpp
new file mode 100644
index 0000000..f503913
--- /dev/null
+++ b/csgo-loader/csgo-server/Networking/WebSocket.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include <windows.h>
+#include <wininet.h>
+#include <vector>
+#include <algorithm>
+#include <cstdint>
+
+#pragma comment(lib, "wininet.lib")
+
+using ByteArray = std::vector<uint8_t>;
+
+namespace Networking {
+ // Whenever the handle goes out of scope, it will automatically be released.
+ class InternetHandle {
+ HINTERNET m_Internet;
+ public:
+ InternetHandle() = default;
+ InternetHandle(HINTERNET Internet) :
+ m_Internet(Internet) { }
+
+ ~InternetHandle() {
+ InternetCloseHandle(m_Internet);
+ }
+
+ operator HINTERNET() { return m_Internet; };
+ };
+
+ class WebSocket {
+ InternetHandle m_Internet;
+ InternetHandle m_Address;
+
+ public:
+ bool Start(const char *Address, const char *Username, const char *Password);
+ ByteArray Request(const char *File, const char *Header, ByteArray &Data);
+ };
+} \ No newline at end of file