From bf51e68e7728ce72a51a38e38b8adece22226a95 Mon Sep 17 00:00:00 2001 From: lotodore Date: Sat, 26 Sep 2009 16:14:22 +0000 Subject: [PATCH] Reacting to authentication success. --- src/net/common/serverlobbythread.cpp | 51 ++++++++++++---------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/src/net/common/serverlobbythread.cpp b/src/net/common/serverlobbythread.cpp index 2c8a2775..00ad9703 100644 --- a/src/net/common/serverlobbythread.cpp +++ b/src/net/common/serverlobbythread.cpp @@ -857,10 +857,7 @@ ServerLobbyThread::HandleNetPacketInit(SessionWrapper session, const InitMessage SessionError(session, ERR_NET_VERSION_NOT_SUPPORTED); return; } - if (initMessage.requestedVersion.major == 5 && (initMessage.requestedVersion.minor == 0 || initMessage.requestedVersion.minor == 1)) - session.sessionData->SetMaxNumPlayers(7); - else - session.sessionData->SetMaxNumPlayers(MAX_NUMBER_OF_PLAYERS); + session.sessionData->SetMaxNumPlayers(MAX_NUMBER_OF_PLAYERS); string playerName; string password; @@ -885,13 +882,6 @@ ServerLobbyThread::HandleNetPacketInit(SessionWrapper session, const InitMessage else SessionError(session, ERR_NET_INVALID_PASSWORD); - // Check the server password. -/* if (!CheckPassword(initData.password)) - { - SessionError(session, ERR_NET_INVALID_PASSWORD); - return; - }*/ - // Check whether the player name is correct. // Partly, this is also done in netpacket. // However, some disallowed names are checked only here. @@ -1193,28 +1183,30 @@ ServerLobbyThread::HandleNetPacketChatRequest(SessionWrapper session, const Chat void ServerLobbyThread::InitAfterLogin(SessionWrapper session) { - assert(session.playerData); - const MD5Buf &avatarMD5 = session.playerData->GetAvatarMD5(); - string avatarFileName; - if (!avatarMD5.IsZero() - && !GetAvatarManager().GetAvatarFileName(avatarMD5, avatarFileName)) + if (session.sessionData && session.playerData) { - bool avatarRecentlyRequested = false; + const MD5Buf &avatarMD5 = session.playerData->GetAvatarMD5(); + string avatarFileName; + if (!avatarMD5.IsZero() + && !GetAvatarManager().GetAvatarFileName(avatarMD5, avatarFileName)) { - boost::mutex::scoped_lock lock(m_timerAvatarClientAddressMapMutex); - if (m_timerAvatarClientAddressMap.find(session.sessionData->GetClientAddr()) != m_timerAvatarClientAddressMap.end()) - avatarRecentlyRequested = true; + bool avatarRecentlyRequested = false; + { + boost::mutex::scoped_lock lock(m_timerAvatarClientAddressMapMutex); + if (m_timerAvatarClientAddressMap.find(session.sessionData->GetClientAddr()) != m_timerAvatarClientAddressMap.end()) + avatarRecentlyRequested = true; + } + if (avatarRecentlyRequested) + SessionError(session, ERR_NET_AVATAR_UPLOAD_BLOCKED); + else + RequestPlayerAvatar(session); } - if (avatarRecentlyRequested) - SessionError(session, ERR_NET_AVATAR_UPLOAD_BLOCKED); else - RequestPlayerAvatar(session); - } - else - { - if (!avatarFileName.empty()) - session.playerData->SetAvatarFile(avatarFileName); - EstablishSession(session); + { + if (!avatarFileName.empty()) + session.playerData->SetAvatarFile(avatarFileName); + EstablishSession(session); + } } } @@ -1263,6 +1255,7 @@ ServerLobbyThread::AuthenticatePlayer(SessionWrapper session, const std::string void ServerLobbyThread::AuthenticationSuccess(unsigned playerId, db_id dbPlayerId) { + InitAfterLogin(m_sessionManager.GetSessionByUniquePlayerId(playerId, true)); } void