fix(Core/PacketIO): Reintroduce requeueing packets that are sent during login but need you to be logged in (#15145)

This commit is contained in:
Kitzunu
2023-02-21 04:33:18 +01:00
committed by GitHub
parent eacd9247cc
commit cc6fcb6912
3 changed files with 3 additions and 15 deletions

View File

@@ -140,7 +140,6 @@ WorldSession::WorldSession(uint32 id, std::string&& name, std::shared_ptr<WorldS
_offlineTime = 0;
_kicked = false;
_shouldSetOfflineInDB = true;
_timeSyncNextCounter = 0;
_timeSyncTimer = 0;
@@ -174,8 +173,7 @@ WorldSession::~WorldSession()
while (_recvQueue.next(packet))
delete packet;
if (GetShouldSetOfflineInDB())
LoginDatabase.Execute("UPDATE account SET online = 0 WHERE id = {};", GetAccountId()); // One-time query
LoginDatabase.Execute("UPDATE account SET online = 0 WHERE id = {};", GetAccountId()); // One-time query
}
std::string const& WorldSession::GetPlayerName() const
@@ -332,7 +330,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
//! the client to be in world yet. We will re-add the packets to the bottom of the queue and process them later.
if (!m_playerRecentlyLogout)
{
// requeuePackets.push_back(packet);
requeuePackets.push_back(packet);
deletePacket = false;
LOG_DEBUG("network", "Re-enqueueing packet with opcode {} with with status STATUS_LOGGEDIN. "
@@ -517,7 +515,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
if (!m_Socket)
{
return false;
return false; //Will remove this session from the world session map
}
}