aboutsummaryrefslogtreecommitdiff
path: root/src/server/bnetserver/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-12-22 13:06:28 +0100
committerShauren <shauren.trinity@gmail.com>2025-12-22 13:06:28 +0100
commitb69a1a71c6b3c604f5eed1d0752f66981a4efc25 (patch)
tree762aefb04270e86b8aa2b6f2d527291baae8b6f5 /src/server/bnetserver/Server
parenta4bbb6197002d76d084ced8a0f6fa79ff7bcc922 (diff)
Core/Network: Fix invalid NetworkThread array access for derived classes that have additional data members (only HttpService threads were affected)
Diffstat (limited to 'src/server/bnetserver/Server')
-rw-r--r--src/server/bnetserver/Server/SessionManager.cpp5
-rw-r--r--src/server/bnetserver/Server/SessionManager.h10
2 files changed, 9 insertions, 6 deletions
diff --git a/src/server/bnetserver/Server/SessionManager.cpp b/src/server/bnetserver/Server/SessionManager.cpp
index 4c5b532ee60..b1dac140084 100644
--- a/src/server/bnetserver/Server/SessionManager.cpp
+++ b/src/server/bnetserver/Server/SessionManager.cpp
@@ -16,7 +16,6 @@
*/
#include "SessionManager.h"
-#include "Util.h"
bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount)
{
@@ -30,9 +29,9 @@ bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext
return true;
}
-Trinity::Net::NetworkThread<Battlenet::Session>* Battlenet::SessionManager::CreateThreads() const
+Battlenet::SessionNetworkThread* Battlenet::SessionManager::CreateThreads() const
{
- return new Trinity::Net::NetworkThread<Session>[GetNetworkThreadCount()];
+ return new SessionNetworkThread[GetNetworkThreadCount()];
}
Battlenet::SessionManager& Battlenet::SessionManager::Instance()
diff --git a/src/server/bnetserver/Server/SessionManager.h b/src/server/bnetserver/Server/SessionManager.h
index 528ece8739e..aa2ecdbf9de 100644
--- a/src/server/bnetserver/Server/SessionManager.h
+++ b/src/server/bnetserver/Server/SessionManager.h
@@ -23,9 +23,13 @@
namespace Battlenet
{
- class SessionManager : public Trinity::Net::SocketMgr<Session>
+ class SessionNetworkThread final : public Trinity::Net::NetworkThread<Session>
{
- typedef SocketMgr<Session> BaseSocketMgr;
+ };
+
+ class SessionManager final : public Trinity::Net::SocketMgr<Session, SessionNetworkThread>
+ {
+ using BaseSocketMgr = SocketMgr;
public:
static SessionManager& Instance();
@@ -33,7 +37,7 @@ namespace Battlenet
bool StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount = 1) override;
protected:
- Trinity::Net::NetworkThread<Session>* CreateThreads() const override;
+ SessionNetworkThread* CreateThreads() const override;
};
}