From a18e3ef20a5dc3af4438bb0ec1973f1c19fd071c Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 8 Dec 2023 20:27:41 +0100 Subject: Core/Misc: Minor code modernization - kill std::bind (cherry picked from commit 78bcc3f52a1daa406851e7121c2b1af392fb4b3c) --- src/server/bnetserver/Main.cpp | 38 ++++++++++++++++++------- src/server/bnetserver/REST/LoginRESTService.cpp | 2 +- src/server/bnetserver/Server/Session.cpp | 20 ++++++------- src/server/bnetserver/Server/Session.h | 2 +- src/server/bnetserver/Server/SessionManager.cpp | 2 -- 5 files changed, 40 insertions(+), 24 deletions(-) (limited to 'src/server/bnetserver') diff --git a/src/server/bnetserver/Main.cpp b/src/server/bnetserver/Main.cpp index afa8ed940c3..e1168a1a90b 100644 --- a/src/server/bnetserver/Main.cpp +++ b/src/server/bnetserver/Main.cpp @@ -236,7 +236,10 @@ int main(int argc, char** argv) #if TRINITY_PLATFORM == TRINITY_PLATFORM_WINDOWS signals.add(SIGBREAK); #endif - signals.async_wait(std::bind(&SignalHandler, std::weak_ptr(ioContext), std::placeholders::_1, std::placeholders::_2)); + signals.async_wait([ioContextRef = std::weak_ptr(ioContext)](boost::system::error_code const& error, int signalNumber) mutable + { + SignalHandler(std::move(ioContextRef), error, signalNumber); + }); // Set process priority according to configuration settings SetProcessPriority("server.bnetserver", sConfigMgr->GetIntDefault(CONFIG_PROCESSOR_AFFINITY, 0), sConfigMgr->GetBoolDefault(CONFIG_HIGH_PRIORITY, false)); @@ -245,12 +248,18 @@ int main(int argc, char** argv) int32 dbPingInterval = sConfigMgr->GetIntDefault("MaxPingTime", 30); std::shared_ptr dbPingTimer = std::make_shared(*ioContext); dbPingTimer->expires_from_now(boost::posix_time::minutes(dbPingInterval)); - dbPingTimer->async_wait(std::bind(&KeepDatabaseAliveHandler, std::weak_ptr(dbPingTimer), dbPingInterval, std::placeholders::_1)); + dbPingTimer->async_wait([timerRef = std::weak_ptr(dbPingTimer), dbPingInterval](boost::system::error_code const& error) mutable + { + KeepDatabaseAliveHandler(std::move(timerRef), dbPingInterval, error); + }); int32 banExpiryCheckInterval = sConfigMgr->GetIntDefault("BanExpiryCheckInterval", 60); std::shared_ptr banExpiryCheckTimer = std::make_shared(*ioContext); banExpiryCheckTimer->expires_from_now(boost::posix_time::seconds(banExpiryCheckInterval)); - banExpiryCheckTimer->async_wait(std::bind(&BanExpiryHandler, std::weak_ptr(banExpiryCheckTimer), banExpiryCheckInterval, std::placeholders::_1)); + banExpiryCheckTimer->async_wait([timerRef = std::weak_ptr(banExpiryCheckTimer), banExpiryCheckInterval](boost::system::error_code const& error) mutable + { + BanExpiryHandler(std::move(timerRef), banExpiryCheckInterval, error); + }); #if TRINITY_PLATFORM == TRINITY_PLATFORM_WINDOWS std::shared_ptr serviceStatusWatchTimer; @@ -258,10 +267,10 @@ int main(int argc, char** argv) { serviceStatusWatchTimer = std::make_shared(*ioContext); serviceStatusWatchTimer->expires_from_now(boost::posix_time::seconds(1)); - serviceStatusWatchTimer->async_wait(std::bind(&ServiceStatusWatcher, - std::weak_ptr(serviceStatusWatchTimer), - std::weak_ptr(ioContext), - std::placeholders::_1)); + serviceStatusWatchTimer->async_wait([timerRef = std::weak_ptr(serviceStatusWatchTimer), ioContextRef = std::weak_ptr(ioContext)](boost::system::error_code const& error) mutable + { + ServiceStatusWatcher(std::move(timerRef), std::move(ioContextRef), error); + }); } #endif @@ -320,7 +329,10 @@ void KeepDatabaseAliveHandler(std::weak_ptr dbPing LoginDatabase.KeepAlive(); dbPingTimer->expires_from_now(boost::posix_time::minutes(dbPingInterval)); - dbPingTimer->async_wait(std::bind(&KeepDatabaseAliveHandler, dbPingTimerRef, dbPingInterval, std::placeholders::_1)); + dbPingTimer->async_wait([timerRef = std::move(dbPingTimerRef), dbPingInterval](boost::system::error_code const& error) mutable + { + KeepDatabaseAliveHandler(std::move(timerRef), dbPingInterval, error); + }); } } } @@ -336,7 +348,10 @@ void BanExpiryHandler(std::weak_ptr banExpiryCheck LoginDatabase.Execute(LoginDatabase.GetPreparedStatement(LOGIN_DEL_BNET_EXPIRED_ACCOUNT_BANNED)); banExpiryCheckTimer->expires_from_now(boost::posix_time::seconds(banExpiryCheckInterval)); - banExpiryCheckTimer->async_wait(std::bind(&BanExpiryHandler, banExpiryCheckTimerRef, banExpiryCheckInterval, std::placeholders::_1)); + banExpiryCheckTimer->async_wait([timerRef = std::move(banExpiryCheckTimerRef), banExpiryCheckInterval](boost::system::error_code const& error) mutable + { + BanExpiryHandler(std::move(timerRef), banExpiryCheckInterval, error); + }); } } } @@ -355,7 +370,10 @@ void ServiceStatusWatcher(std::weak_ptr serviceSta else if (std::shared_ptr serviceStatusWatchTimer = serviceStatusWatchTimerRef.lock()) { serviceStatusWatchTimer->expires_from_now(boost::posix_time::seconds(1)); - serviceStatusWatchTimer->async_wait(std::bind(&ServiceStatusWatcher, serviceStatusWatchTimerRef, ioContext, std::placeholders::_1)); + serviceStatusWatchTimer->async_wait([timerRef = std::move(serviceStatusWatchTimerRef), ioContextRef = std::move(ioContextRef)](boost::system::error_code const& error) mutable + { + ServiceStatusWatcher(std::move(timerRef), std::move(ioContextRef), error); + }); } } } diff --git a/src/server/bnetserver/REST/LoginRESTService.cpp b/src/server/bnetserver/REST/LoginRESTService.cpp index 0aa8ac8fb0d..6141dc702f9 100644 --- a/src/server/bnetserver/REST/LoginRESTService.cpp +++ b/src/server/bnetserver/REST/LoginRESTService.cpp @@ -124,7 +124,7 @@ bool LoginRESTService::Start(Trinity::Asio::IoContext* ioContext) _loginTicketDuration = sConfigMgr->GetIntDefault("LoginREST.TicketDuration", 3600); - _thread = std::thread(std::bind(&LoginRESTService::Run, this)); + _thread = std::thread(&LoginRESTService::Run, this); return true; } diff --git a/src/server/bnetserver/Server/Session.cpp b/src/server/bnetserver/Server/Session.cpp index 95c46418a7d..ea5256ed635 100644 --- a/src/server/bnetserver/Server/Session.cpp +++ b/src/server/bnetserver/Server/Session.cpp @@ -47,7 +47,7 @@ void Battlenet::Session::AccountInfo::LoadResult(PreparedQueryResult result) IsBanned = fields[6].GetUInt64() != 0; IsPermanenetlyBanned = fields[7].GetUInt64() != 0; - static uint32 const GameAccountFieldsOffset = 8; + static constexpr uint32 GameAccountFieldsOffset = 8; do { @@ -56,7 +56,7 @@ void Battlenet::Session::AccountInfo::LoadResult(PreparedQueryResult result) } while (result->NextRow()); } -void Battlenet::Session::GameAccountInfo::LoadResult(Field* fields) +void Battlenet::Session::GameAccountInfo::LoadResult(Field const* fields) { // a.id, a.username, ab.unbandate, ab.unbandate = ab.bandate, aa.SecurityLevel Id = fields[0].GetUInt32(); @@ -74,18 +74,17 @@ void Battlenet::Session::GameAccountInfo::LoadResult(Field* fields) } Battlenet::Session::Session(boost::asio::ip::tcp::socket&& socket) : BattlenetSocket(std::move(socket)), _accountInfo(new AccountInfo()), _gameAccountInfo(nullptr), _locale(), - _os(), _build(0), _ipCountry(), _authed(false), _requestToken(0) + _os(), _build(0), _timezoneOffset(0min), _ipCountry(), _clientSecret(), _authed(false), _requestToken(0) { _headerLengthBuffer.Resize(2); } -Battlenet::Session::~Session() -{ -} +Battlenet::Session::~Session() = default; void Battlenet::Session::AsyncHandshake() { - underlying_stream().async_handshake(boost::asio::ssl::stream_base::server, std::bind(&Session::HandshakeHandler, shared_from_this(), std::placeholders::_1)); + underlying_stream().async_handshake(boost::asio::ssl::stream_base::server, + [sess = shared_from_this()](boost::system::error_code const& error) { sess->HandshakeHandler(error); }); } void Battlenet::Session::Start() @@ -99,7 +98,8 @@ void Battlenet::Session::Start() LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_IP_INFO); stmt->setString(0, ip_address); - _queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&Battlenet::Session::CheckIpCallback, this, std::placeholders::_1))); + _queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt) + .WithPreparedCallback([sess = shared_from_this()](PreparedQueryResult result) { sess->CheckIpCallback(std::move(result)); })); } void Battlenet::Session::CheckIpCallback(PreparedQueryResult result) @@ -429,10 +429,10 @@ uint32 Battlenet::Session::VerifyWebCredentials(std::string const& webCredential logonResult.set_error_code(0); logonResult.mutable_account_id()->set_low(_accountInfo->Id); logonResult.mutable_account_id()->set_high(UI64LIT(0x100000000000000)); - for (auto itr = _accountInfo->GameAccounts.begin(); itr != _accountInfo->GameAccounts.end(); ++itr) + for (auto const& [id, gameAccountInfo] : accountInfo->GameAccounts) { EntityId* gameAccountId = logonResult.add_game_account_id(); - gameAccountId->set_low(itr->second.Id); + gameAccountId->set_low(gameAccountInfo.Id); gameAccountId->set_high(UI64LIT(0x200000200576F57)); } diff --git a/src/server/bnetserver/Server/Session.h b/src/server/bnetserver/Server/Session.h index 01167d38a0b..6d22c202615 100644 --- a/src/server/bnetserver/Server/Session.h +++ b/src/server/bnetserver/Server/Session.h @@ -80,7 +80,7 @@ namespace Battlenet struct GameAccountInfo { - void LoadResult(Field* fields); + void LoadResult(Field const* fields); uint32 Id; std::string Name; diff --git a/src/server/bnetserver/Server/SessionManager.cpp b/src/server/bnetserver/Server/SessionManager.cpp index dd5f73a788f..6e07fcecff1 100644 --- a/src/server/bnetserver/Server/SessionManager.cpp +++ b/src/server/bnetserver/Server/SessionManager.cpp @@ -17,7 +17,6 @@ #include "SessionManager.h" #include "DatabaseEnv.h" -#include "SRP6.h" #include "Util.h" bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount) @@ -25,7 +24,6 @@ bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext if (!BaseSocketMgr::StartNetwork(ioContext, bindIp, port, threadCount)) return false; - _acceptor->SetSocketFactory(std::bind(&BaseSocketMgr::GetSocketForAccept, this)); _acceptor->AsyncAcceptWithCallback<&OnSocketAccept>(); return true; } -- cgit v1.2.3