diff options
author | click <none@none> | 2010-06-05 22:44:53 +0200 |
---|---|---|
committer | click <none@none> | 2010-06-05 22:44:53 +0200 |
commit | fd28bc6aff6fe356262b5ac20e152c6ec8569c43 (patch) | |
tree | 79cdf14a40d1fcbb3ded952e67831a8fb0ecdb46 /src/server/authserver/AuthSocket.h | |
parent | 1f87b6d34aee1e98981763adb017a79dfc211b67 (diff) |
rename world server directory (trinitycore) to worldserver, rename authserver directory (trinityrealm) to authserver to reflect their real purposes
--HG--
branch : trunk
rename : src/server/trinityrealm/AuthCodes.cpp => src/server/authserver/AuthCodes.cpp
rename : src/server/trinityrealm/AuthCodes.h => src/server/authserver/AuthCodes.h
rename : src/server/trinityrealm/AuthSocket.cpp => src/server/authserver/AuthSocket.cpp
rename : src/server/trinityrealm/AuthSocket.h => src/server/authserver/AuthSocket.h
rename : src/server/trinityrealm/CMakeLists.txt => src/server/authserver/CMakeLists.txt
rename : src/server/trinityrealm/Main.cpp => src/server/authserver/Main.cpp
rename : src/server/trinityrealm/RealmAcceptor.h => src/server/authserver/RealmAcceptor.h
rename : src/server/trinityrealm/RealmList.cpp => src/server/authserver/RealmList.cpp
rename : src/server/trinityrealm/RealmList.h => src/server/authserver/RealmList.h
rename : src/server/trinityrealm/RealmSocket.cpp => src/server/authserver/RealmSocket.cpp
rename : src/server/trinityrealm/RealmSocket.h => src/server/authserver/RealmSocket.h
rename : src/server/trinityrealm/TrinityRealm.ico => src/server/authserver/TrinityRealm.ico
rename : src/server/trinityrealm/TrinityRealm.rc => src/server/authserver/TrinityRealm.rc
rename : src/server/trinityrealm/resource.h => src/server/authserver/resource.h
rename : src/server/trinityrealm/trinityrealm.conf.dist => src/server/authserver/trinityrealm.conf.dist
rename : src/server/trinitycore/CMakeLists.txt => src/server/worldserver/CMakeLists.txt
rename : src/server/trinitycore/CliRunnable.cpp => src/server/worldserver/CliRunnable.cpp
rename : src/server/trinitycore/CliRunnable.h => src/server/worldserver/CliRunnable.h
rename : src/server/trinitycore/Main.cpp => src/server/worldserver/Main.cpp
rename : src/server/trinitycore/Master.cpp => src/server/worldserver/Master.cpp
rename : src/server/trinitycore/Master.h => src/server/worldserver/Master.h
rename : src/server/trinitycore/RASocket.cpp => src/server/worldserver/RASocket.cpp
rename : src/server/trinitycore/RASocket.h => src/server/worldserver/RASocket.h
rename : src/server/trinitycore/TrinityCore.ico => src/server/worldserver/TrinityCore.ico
rename : src/server/trinitycore/TrinityCore.rc => src/server/worldserver/TrinityCore.rc
rename : src/server/trinitycore/WorldRunnable.cpp => src/server/worldserver/WorldRunnable.cpp
rename : src/server/trinitycore/WorldRunnable.h => src/server/worldserver/WorldRunnable.h
rename : src/server/trinitycore/resource.h => src/server/worldserver/resource.h
rename : src/server/trinitycore/trinitycore.conf.dist => src/server/worldserver/trinitycore.conf.dist
Diffstat (limited to 'src/server/authserver/AuthSocket.h')
-rw-r--r-- | src/server/authserver/AuthSocket.h | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/server/authserver/AuthSocket.h b/src/server/authserver/AuthSocket.h new file mode 100644 index 00000000000..bfd0fa4fdca --- /dev/null +++ b/src/server/authserver/AuthSocket.h @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> + * + * Copyright (C) 2008-2010 Trinity <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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/// \addtogroup realmd +/// @{ +/// \file + +#ifndef _AUTHSOCKET_H +#define _AUTHSOCKET_H + +#include "Common.h" +#include "Auth/BigNumber.h" + +#include "RealmSocket.h" + +enum RealmFlags +{ + REALM_FLAG_NONE = 0x00, + REALM_FLAG_INVALID = 0x01, + REALM_FLAG_OFFLINE = 0x02, + REALM_FLAG_SPECIFYBUILD = 0x04, // client will show realm version in RealmList screen in form "RealmName (major.minor.revision.build)" + REALM_FLAG_UNK1 = 0x08, + REALM_FLAG_UNK2 = 0x10, + REALM_FLAG_RECOMMENDED = 0x20, // client checks pop == 600f + REALM_FLAG_NEW = 0x40, // client checks pop == 200f + REALM_FLAG_FULL = 0x80 // client checks pop == 400f +}; + +/// Handle login commands +class AuthSocket: public RealmSocket::Session +{ + public: + const static int s_BYTE_SIZE = 32; + + AuthSocket(RealmSocket& socket); + virtual ~AuthSocket(void); + + virtual void OnRead(void); + virtual void OnAccept(void); + virtual void OnClose(void); + + bool _HandleLogonChallenge(); + bool _HandleLogonProof(); + bool _HandleReconnectChallenge(); + bool _HandleReconnectProof(); + bool _HandleRealmList(); + //data transfer handle for patch + + bool _HandleXferResume(); + bool _HandleXferCancel(); + bool _HandleXferAccept(); + + void _SetVSFields(const std::string& rI); + + FILE *pPatch; + ACE_Thread_Mutex patcherLock; + + private: + RealmSocket& socket_; + RealmSocket& socket(void) { return socket_; } + + BigNumber N, s, g, v; + BigNumber b, B; + BigNumber K; + BigNumber _reconnectProof; + + bool _authed; + + std::string _login; + std::string _safelogin; + + // Since GetLocaleByName() is _NOT_ bijective, we have to store the locale as a string. Otherwise we can't differ + // between enUS and enGB, which is important for the patch system + std::string _localizationName; + uint16 _build; + uint8 _expversion; + AccountTypes _accountSecurityLevel; +}; +#endif +/// @} |