mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-04-19 03:20:11 +03:00
feat(net): handle get version proof
This commit is contained in:
parent
59a0883529
commit
85a9f8bde8
@ -11,11 +11,12 @@ class Grunt::ClientResponse {
|
||||
virtual bool Connected(const NETADDR& addr) = 0;
|
||||
virtual bool OnlineIdle() = 0;
|
||||
virtual void GetLogonMethod() = 0;
|
||||
virtual void GetVersionProof(const uint8_t* a2) = 0;
|
||||
virtual void GetVersionProof(const uint8_t* crcSalt) = 0;
|
||||
virtual void SetPinInfo(bool enabled, uint32_t a3, const uint8_t* a4) = 0;
|
||||
virtual void SetMatrixInfo(bool enabled, uint8_t a3, uint8_t a4, uint8_t a5, uint8_t a6, bool a7, uint8_t a8, uint64_t a9, const uint8_t* a10, uint32_t a11) = 0;
|
||||
virtual void SetTokenInfo(bool enabled, uint8_t required) = 0;
|
||||
virtual void LogonResult(Result result, const uint8_t* a3, uint32_t a4, uint16_t a5) = 0;
|
||||
virtual LOGIN_STATE NextSecurityState(LOGIN_STATE state) = 0;
|
||||
virtual void GetRealmList() = 0;
|
||||
virtual void Logon(const char* a2, const char* a3) = 0;
|
||||
virtual void Logoff() = 0;
|
||||
|
@ -88,8 +88,14 @@ void GruntLogin::GetRealmList() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
void GruntLogin::GetVersionProof(const uint8_t* a2) {
|
||||
void GruntLogin::GetVersionProof(const uint8_t* crcSalt) {
|
||||
if (this->IsReconnect()) {
|
||||
// TODO
|
||||
} else {
|
||||
memcpy(this->m_crcSalt, crcSalt, sizeof(this->m_crcSalt));
|
||||
LOGIN_STATE nextState = this->NextSecurityState(LOGIN_STATE_FIRST_SECURITY);
|
||||
this->m_loginResponse->UpdateLoginStatus(nextState, LOGIN_OK, nullptr, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void GruntLogin::Init(LoginResponse* loginResponse) {
|
||||
@ -133,6 +139,11 @@ void GruntLogin::LogonResult(Grunt::Result result, const uint8_t* a3, uint32_t a
|
||||
// TODO
|
||||
}
|
||||
|
||||
LOGIN_STATE GruntLogin::NextSecurityState(LOGIN_STATE state) {
|
||||
// TODO
|
||||
return LOGIN_STATE_CHECKINGVERSIONS;
|
||||
}
|
||||
|
||||
void GruntLogin::SetMatrixInfo(bool enabled, uint8_t a3, uint8_t a4, uint8_t a5, uint8_t a6, bool a7, uint8_t a8, uint64_t a9, const uint8_t* a10, uint32_t a11) {
|
||||
// TODO
|
||||
}
|
||||
|
@ -8,17 +8,19 @@
|
||||
class GruntLogin : public Login {
|
||||
public:
|
||||
// Member variables
|
||||
uint8_t m_crcSalt[16];
|
||||
Grunt::ClientLink* m_clientLink = nullptr;
|
||||
|
||||
// Virtual member functions
|
||||
virtual ~GruntLogin();
|
||||
virtual bool Connected(const NETADDR& addr);
|
||||
virtual void GetLogonMethod();
|
||||
virtual void GetVersionProof(const uint8_t* a2);
|
||||
virtual void GetVersionProof(const uint8_t* crcSalt);
|
||||
virtual void SetPinInfo(bool enabled, uint32_t a3, const uint8_t* a4);
|
||||
virtual void SetMatrixInfo(bool enabled, uint8_t a3, uint8_t a4, uint8_t a5, uint8_t a6, bool a7, uint8_t a8, uint64_t a9, const uint8_t* a10, uint32_t a11);
|
||||
virtual void SetTokenInfo(bool enabled, uint8_t tokenRequired);
|
||||
virtual void LogonResult(Grunt::Result result, const uint8_t* a3, uint32_t a4, uint16_t a5);
|
||||
virtual LOGIN_STATE NextSecurityState(LOGIN_STATE state);
|
||||
virtual void GetRealmList();
|
||||
virtual void Logon(const char* a2, const char* a3);
|
||||
virtual void Logoff();
|
||||
|
12
src/net/login/LoginResponse.cpp
Normal file
12
src/net/login/LoginResponse.cpp
Normal file
@ -0,0 +1,12 @@
|
||||
#include "net/login/LoginResponse.hpp"
|
||||
|
||||
void LoginResponse::UpdateLoginStatus(LOGIN_STATE state, LOGIN_RESULT result, const char* a4, uint16_t a5) {
|
||||
this->m_loginState = state;
|
||||
this->m_loginResult = result;
|
||||
|
||||
// TODO string lookups
|
||||
const char* stateStr = nullptr;
|
||||
const char* resultStr = nullptr;
|
||||
|
||||
this->LoginServerStatus(state, result, a4, stateStr, resultStr, a5);
|
||||
}
|
@ -11,6 +11,9 @@ class LoginResponse {
|
||||
|
||||
// Virtual member functions
|
||||
virtual void LoginServerStatus(LOGIN_STATE state, LOGIN_RESULT result, const char* addrStr, const char* stateStr, const char* resultStr, uint16_t a7) = 0;
|
||||
|
||||
// Member functions
|
||||
void UpdateLoginStatus(LOGIN_STATE state, LOGIN_RESULT result, const char* a4, uint16_t a5);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user