From f97bf4a876a23230d2814321be572e347a87960d Mon Sep 17 00:00:00 2001 From: fallenoak Date: Tue, 30 Sep 2025 16:26:20 -0500 Subject: [PATCH] feat(net): implement GruntLogin::Reconnect --- src/net/grunt/ClientLink.cpp | 8 ++++---- src/net/grunt/ClientLink.hpp | 2 +- src/net/login/GruntLogin.cpp | 4 +++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/net/grunt/ClientLink.cpp b/src/net/grunt/ClientLink.cpp index 65a0b1c..56b7bc3 100644 --- a/src/net/grunt/ClientLink.cpp +++ b/src/net/grunt/ClientLink.cpp @@ -510,7 +510,7 @@ int32_t Grunt::ClientLink::CmdXferInitiate(CDataStore& msg) { return 0; } -void Grunt::ClientLink::Connect(const char* a2) { +void Grunt::ClientLink::Connect(const char* loginServer) { if (this->m_state) { return; } @@ -523,11 +523,11 @@ void Grunt::ClientLink::Connect(const char* a2) { this->m_connection = connection; this->m_connection->SetType(WOWC_TYPE_STREAM); - auto port = SStrChr(a2, ':'); + auto port = SStrChr(loginServer, ':'); if (port) { - this->m_connection->Connect(a2, 5000); + this->m_connection->Connect(loginServer, 5000); } else { - this->m_connection->Connect(a2, 3724, 5000); + this->m_connection->Connect(loginServer, 3724, 5000); } } diff --git a/src/net/grunt/ClientLink.hpp b/src/net/grunt/ClientLink.hpp index 410931b..1e52485 100644 --- a/src/net/grunt/ClientLink.hpp +++ b/src/net/grunt/ClientLink.hpp @@ -79,7 +79,7 @@ class Grunt::ClientLink : public WowConnectionResponse, Grunt::Pending, Grunt::T int32_t CmdRealmList(CDataStore& msg); int32_t CmdXferData(CDataStore& msg); int32_t CmdXferInitiate(CDataStore& msg); - void Connect(const char* a2); + void Connect(const char* loginServer); void Disconnect(); void GetRealmList(); void LogonNewSession(const Logon& logon); diff --git a/src/net/login/GruntLogin.cpp b/src/net/login/GruntLogin.cpp index c8519b2..33f4a60 100644 --- a/src/net/login/GruntLogin.cpp +++ b/src/net/login/GruntLogin.cpp @@ -291,7 +291,9 @@ void GruntLogin::ProveVersion(const uint8_t* versionChecksum) { } void GruntLogin::Reconnect() { - // TODO + this->m_reconnect = true; + + this->m_clientLink->Connect(this->m_loginResponse->GetLoginServer()); } void GruntLogin::ReconnectResult(Grunt::Result result, const uint8_t* sessionKey, uint32_t sessionKeyLen, uint16_t flags) {