Compare uid from connect on activate (#175)
* Compare UID from connect on activate * only set uid on first time i think
This commit is contained in:
parent
6c8112a6c3
commit
0bd42559b5
|
@ -387,6 +387,8 @@ bool CBaseClient__ConnectHook(void* self, char* name, __int64 netchan_ptr_arg, c
|
|||
additionalData.usingLocalPdata = *((char*)self + 0x4a0) == (char)0x3;
|
||||
|
||||
g_ServerAuthenticationManager->m_additionalPlayerData.insert(std::make_pair(self, additionalData));
|
||||
|
||||
g_ServerAuthenticationManager->m_additionalPlayerData[self].uid = nextPlayerUid;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -394,6 +396,21 @@ bool CBaseClient__ConnectHook(void* self, char* name, __int64 netchan_ptr_arg, c
|
|||
|
||||
void CBaseClient__ActivatePlayerHook(void* self)
|
||||
{
|
||||
bool uidMatches = false;
|
||||
if (g_ServerAuthenticationManager->m_additionalPlayerData.count(self))
|
||||
{
|
||||
std::string strUid = std::to_string(g_ServerAuthenticationManager->m_additionalPlayerData[self].uid);
|
||||
if (!strcmp(strUid.c_str(), (char*)self + 0xF500)) // connecting client's uid is the same as auth's uid
|
||||
{
|
||||
uidMatches = true;
|
||||
}
|
||||
}
|
||||
if (!uidMatches)
|
||||
{
|
||||
CBaseClient__Disconnect(self, 1, "Authentication Failed");
|
||||
return;
|
||||
}
|
||||
|
||||
// if we're authed, write our persistent data
|
||||
// RemovePlayerAuthData returns true if it removed successfully, i.e. on first call only, and we only want to write on >= second call
|
||||
// (since this func is called on map loads)
|
||||
|
|
|
@ -28,6 +28,8 @@ struct AdditionalPlayerData
|
|||
|
||||
double lastSayTextLimitStart = -1.0;
|
||||
int sayTextLimitCount = 0;
|
||||
|
||||
uint64_t uid;
|
||||
};
|
||||
|
||||
#pragma once
|
||||
|
@ -107,4 +109,4 @@ extern CBaseClient__DisconnectType CBaseClient__Disconnect;
|
|||
void InitialiseServerAuthentication(HMODULE baseAddress);
|
||||
|
||||
extern ServerAuthenticationManager* g_ServerAuthenticationManager;
|
||||
extern ConVar* Cvar_ns_player_auth_port;
|
||||
extern ConVar* Cvar_ns_player_auth_port;
|
||||
|
|
Loading…
Reference in New Issue