Adding country information of player (optional).
This commit is contained in:
@@ -0,0 +1,37 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2010 by Lothar May *
|
||||||
|
* *
|
||||||
|
* 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. *
|
||||||
|
***************************************************************************/
|
||||||
|
/* Server database callback for async database operations. */
|
||||||
|
|
||||||
|
#ifndef _DBDEFS_H_
|
||||||
|
#define _DBDEFS_H_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
typedef unsigned DB_id;
|
||||||
|
#define DB_ID_INVALID 0
|
||||||
|
|
||||||
|
struct DBPlayerData
|
||||||
|
{
|
||||||
|
DB_id id;
|
||||||
|
std::string secret;
|
||||||
|
std::string language;
|
||||||
|
std::string last_login;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -21,11 +21,9 @@
|
|||||||
#ifndef _SERVERDBCALLBACK_H_
|
#ifndef _SERVERDBCALLBACK_H_
|
||||||
#define _SERVERDBCALLBACK_H_
|
#define _SERVERDBCALLBACK_H_
|
||||||
|
|
||||||
|
#include <db/dbdefs.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
typedef unsigned DB_id;
|
|
||||||
#define DB_ID_INVALID 0
|
|
||||||
|
|
||||||
// Callback operations are posted using the io service,
|
// Callback operations are posted using the io service,
|
||||||
// and will therefore be executed in the io service thread.
|
// and will therefore be executed in the io service thread.
|
||||||
class ServerDBCallback
|
class ServerDBCallback
|
||||||
@@ -38,7 +36,7 @@ public:
|
|||||||
|
|
||||||
virtual void QueryError(const std::string &error) = 0;
|
virtual void QueryError(const std::string &error) = 0;
|
||||||
|
|
||||||
virtual void PlayerLoginSuccess(unsigned requestId, DB_id playerId, const std::string &secret) = 0;
|
virtual void PlayerLoginSuccess(unsigned requestId, const DBPlayerData &dbPlayerData) = 0;
|
||||||
virtual void PlayerLoginFailed(unsigned requestId) = 0;
|
virtual void PlayerLoginFailed(unsigned requestId) = 0;
|
||||||
|
|
||||||
virtual void CreateGameSuccess(unsigned requestId, DB_id gameId) = 0;
|
virtual void CreateGameSuccess(unsigned requestId, DB_id gameId) = 0;
|
||||||
|
|||||||
@@ -113,9 +113,9 @@ public:
|
|||||||
LOG_ERROR("DB query error: " << error);
|
LOG_ERROR("DB query error: " << error);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void PlayerLoginSuccess(unsigned requestId, DB_id dbPlayerId, const std::string &secret)
|
virtual void PlayerLoginSuccess(unsigned requestId, const DBPlayerData &dbPlayerData)
|
||||||
{
|
{
|
||||||
m_server.UserValid(requestId, dbPlayerId, secret);
|
m_server.UserValid(requestId, dbPlayerData);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void PlayerLoginFailed(unsigned requestId)
|
virtual void PlayerLoginFailed(unsigned requestId)
|
||||||
@@ -1483,11 +1483,11 @@ ServerLobbyThread::AuthenticatePlayer(SessionWrapper session)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ServerLobbyThread::UserValid(unsigned playerId, DB_id dbPlayerId, const string &dbSecret)
|
ServerLobbyThread::UserValid(unsigned playerId, const DBPlayerData &dbPlayerData)
|
||||||
{
|
{
|
||||||
SessionWrapper tmpSession = m_sessionManager.GetSessionByUniquePlayerId(playerId, true);
|
SessionWrapper tmpSession = m_sessionManager.GetSessionByUniquePlayerId(playerId, true);
|
||||||
tmpSession.playerData->SetDBId(dbPlayerId);
|
tmpSession.playerData->SetDBId(dbPlayerData.id);
|
||||||
this->AuthChallenge(tmpSession, dbSecret);
|
this->AuthChallenge(tmpSession, dbPlayerData.secret);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ protected:
|
|||||||
void InitAfterLogin(SessionWrapper session);
|
void InitAfterLogin(SessionWrapper session);
|
||||||
void EstablishSession(SessionWrapper session);
|
void EstablishSession(SessionWrapper session);
|
||||||
void AuthenticatePlayer(SessionWrapper session);
|
void AuthenticatePlayer(SessionWrapper session);
|
||||||
void UserValid(unsigned playerId, DB_id dbPlayerId, const std::string &dbSecret);
|
void UserValid(unsigned playerId, const DBPlayerData &dbPlayerData);
|
||||||
void UserInvalid(unsigned playerId);
|
void UserInvalid(unsigned playerId);
|
||||||
void RequestPlayerAvatar(SessionWrapper session);
|
void RequestPlayerAvatar(SessionWrapper session);
|
||||||
void TimerRemoveGame(const boost::system::error_code &ec);
|
void TimerRemoveGame(const boost::system::error_code &ec);
|
||||||
|
|||||||
@@ -65,6 +65,20 @@ PlayerData::SetPassword(const string &password)
|
|||||||
m_password = password;
|
m_password = password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
PlayerData::GetCountry() const
|
||||||
|
{
|
||||||
|
boost::mutex::scoped_lock lock(m_dataMutex);
|
||||||
|
return m_country;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PlayerData::SetCountry(const std::string &country)
|
||||||
|
{
|
||||||
|
boost::mutex::scoped_lock lock(m_dataMutex);
|
||||||
|
m_country = country;
|
||||||
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
PlayerData::GetAvatarFile() const
|
PlayerData::GetAvatarFile() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ public:
|
|||||||
void SetName(const std::string &name);
|
void SetName(const std::string &name);
|
||||||
std::string GetPassword() const;
|
std::string GetPassword() const;
|
||||||
void SetPassword(const std::string &password);
|
void SetPassword(const std::string &password);
|
||||||
|
std::string GetCountry() const;
|
||||||
|
void SetCountry(const std::string &country);
|
||||||
std::string GetAvatarFile() const;
|
std::string GetAvatarFile() const;
|
||||||
void SetAvatarFile(const std::string &avatarFile);
|
void SetAvatarFile(const std::string &avatarFile);
|
||||||
MD5Buf GetAvatarMD5() const;
|
MD5Buf GetAvatarMD5() const;
|
||||||
@@ -110,6 +112,7 @@ private:
|
|||||||
int m_number;
|
int m_number;
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
std::string m_password;
|
std::string m_password;
|
||||||
|
std::string m_country;
|
||||||
std::string m_avatarFile;
|
std::string m_avatarFile;
|
||||||
MD5Buf m_avatarMD5;
|
MD5Buf m_avatarMD5;
|
||||||
PlayerType m_type;
|
PlayerType m_type;
|
||||||
|
|||||||
Reference in New Issue
Block a user