From b90329d63acaecb1f074dd2b303561baa9f639a2 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 22 Aug 2014 20:09:18 +0200 Subject: Core/Battle.net: Use real account name from account table to auth instead of always constructing bnetId#index. Fixes having to reconfigure addons by players. *NEW* battle.net only accounts should be created with battlenet_account_id#account_index format in username --- .../authserver/Server/BattlenetSessionManager.h | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/server/authserver/Server/BattlenetSessionManager.h (limited to 'src/server/authserver/Server/BattlenetSessionManager.h') diff --git a/src/server/authserver/Server/BattlenetSessionManager.h b/src/server/authserver/Server/BattlenetSessionManager.h new file mode 100644 index 00000000000..454bac96ddb --- /dev/null +++ b/src/server/authserver/Server/BattlenetSessionManager.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2008-2014 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#ifndef BattlenetSessionManager_h__ +#define BattlenetSessionManager_h__ + +#include "BattlenetSession.h" + +namespace Battlenet +{ +#pragma pack(push, 1) + + struct SessionInfo + { + uint32 AccountId; + uint32 GameAccountIndex; + + bool operator<(SessionInfo const& right) const + { + return memcmp(this, &right, sizeof(SessionInfo)) < 0; + } + }; + +#pragma pack(pop) + + class SessionManager + { + public: + static SessionManager& Instance() + { + static SessionManager instance; + return instance; + } + + // noop for now, will be needed later to broadcast realmlist updates for example + void AddSession(Session* /*session*/) { } + + void RemoveSession(Session* /*session*/) { } + + private: + std::map _sessions; + }; +} + +#define sBattlenetSessionMgr Battlenet::SessionManager::Instance() + +#endif // BattlenetSessionManager_h__ -- cgit v1.2.3