summaryrefslogtreecommitdiff
path: root/csgo-loader/csgo-server/Login/RemoteLogin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'csgo-loader/csgo-server/Login/RemoteLogin.cpp')
-rw-r--r--csgo-loader/csgo-server/Login/RemoteLogin.cpp51
1 files changed, 39 insertions, 12 deletions
diff --git a/csgo-loader/csgo-server/Login/RemoteLogin.cpp b/csgo-loader/csgo-server/Login/RemoteLogin.cpp
index 880c072..b9ee44b 100644
--- a/csgo-loader/csgo-server/Login/RemoteLogin.cpp
+++ b/csgo-loader/csgo-server/Login/RemoteLogin.cpp
@@ -2,8 +2,10 @@
#define EXPECTED_CLIENT_HEADER 0xDEADBEEF
-namespace Login {
- bool RemoteLoginServer::Start(ByteArray &RawLoginHeader) {
+namespace Login
+{
+ bool RemoteLoginServer::Start(ByteArray &RawLoginHeader)
+ {
if(RawLoginHeader.empty())
return false;
@@ -12,35 +14,60 @@ namespace Login {
return true;
}
- RemoteLoginResponse RemoteLoginServer::GetLoginResponse() {
+ RemoteLoginResponse RemoteLoginServer::GetLoginResponse()
+ {
// The header seems to be wrong, tell the client to update.
if(m_Header.m_ClientHeader != EXPECTED_CLIENT_HEADER)
return RemoteLoginResponse::OUTDATED_CLIENT;
- // TODO: Check login, HWID, bans with websockets.
+ // TODO: Check if the user is banned.
+ //return RemoteLoginResponse::USER_BANNED;
+
+ // TODO: Login the user.
+ if(strcmp(m_Header.m_Username, "betauser"))
+ return RemoteLoginResponse::INVALID_CREDENTIALS;
+
+ if(strcmp(m_Header.m_Password, "betapassword"))
+ return RemoteLoginResponse::INVALID_CREDENTIALS;
// User failed to obtain HWID?
- if(!m_Header.m_HardwareId) {
+ if(!m_Header.m_HardwareId)
+ {
// TODO: Shadow ban the user.
- //return RemoteLoginResponse::INVALID_HARDWARE;
+ return RemoteLoginResponse::INVALID_HARDWARE;
}
+ // TODO: Check if the HWID is present in DB.
+ if(false)
+ return RemoteLoginResponse::INVALID_HARDWARE;
+
+ // TODO: Check if the user has a subscription.
+ if(false)
+ return RemoteLoginResponse::NO_SUBSCRIPTION;
+
+
// Checksum validation.
uint8_t Checksum = m_Header.m_IntegrityBit1
- | m_Header.m_IntegrityBit2
- | m_Header.m_IntegrityBit3;
+ | m_Header.m_IntegrityBit2
+ | m_Header.m_IntegrityBit3;
- if(Checksum || Checksum != m_Header.m_IntegrityBit4) {
+ if(Checksum || Checksum != m_Header.m_IntegrityBit4)
+ {
// TODO: Shadow ban the user.
+
return RemoteLoginResponse::INTEGRITY_FAILURE;
}
- // Assume that they are authorised to use the cheat.
- return RemoteLoginResponse::ACCESS_SPECIAL_USER;
+ // TODO: Check if they have beta access.
+ if(true)
+ return RemoteLoginResponse::ACCESS_SPECIAL_USER;
+
+ return RemoteLoginResponse::ACCESS_AUTHORISED;
}
- ByteArray RemoteLoginServer::GetResponse() {
+ ByteArray RemoteLoginServer::GetResponse()
+ {
// The way the server handles data transmission is homosexual.
// That is the only reason this autism is here.
ByteArray Response;