diff options
| author | Shauren <shauren.trinity@gmail.com> | 2014-08-22 20:09:18 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2014-08-22 20:09:18 +0200 |
| commit | b90329d63acaecb1f074dd2b303561baa9f639a2 (patch) | |
| tree | f2adfc5acec51b4467d56ba1a659330e83fb5aff /src/server/authserver/Server/BattlenetSessionManager.h | |
| parent | f2cb5061618367d6d4c07dee40eb9c6ecaed5d03 (diff) | |
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
Diffstat (limited to 'src/server/authserver/Server/BattlenetSessionManager.h')
| -rw-r--r-- | src/server/authserver/Server/BattlenetSessionManager.h | 61 |
1 files changed, 61 insertions, 0 deletions
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 <http://www.trinitycore.org/> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#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<SessionInfo, Session> _sessions; + }; +} + +#define sBattlenetSessionMgr Battlenet::SessionManager::Instance() + +#endif // BattlenetSessionManager_h__ |
