![]() |
Shadowrun: Awakened 29 September 2011 - Build 871
|
#include <ClientLoginMessage.h>
Inheritance diagram for SraNetwork::ClientLoginMessage:Public Member Functions | |
| ClientLoginMessage (void) | |
| virtual SraPacket * | createPacketFromData (const unsigned char *data) |
| virtual void | process (MessageData *message) |
| ~ClientLoginMessage (void) | |
Definition at line 19 of file ClientLoginMessage.h.
| SraNetwork::ClientLoginMessage::ClientLoginMessage | ( | void | ) |
Definition at line 10 of file ClientLoginMessage.cpp.
{
}
| SraNetwork::ClientLoginMessage::~ClientLoginMessage | ( | void | ) |
Definition at line 15 of file ClientLoginMessage.cpp.
{
std::cout << "Deleting login message" << std::endl;
}
| SraPacket * SraNetwork::ClientLoginMessage::createPacketFromData | ( | const unsigned char * | data | ) | [virtual] |
Implements SraNetwork::SraBaseMessage.
Definition at line 20 of file ClientLoginMessage.cpp.
{
return (LoginPacket*)data;
}
| void SraNetwork::ClientLoginMessage::process | ( | MessageData * | message | ) | [virtual] |
Implements SraNetwork::SraBaseMessage.
Definition at line 25 of file ClientLoginMessage.cpp.
References SraNetwork::MessageData::address, RakNet::RakString::C_String(), SraNetwork::LoginReplyPacket::clientID, SraNetwork::LoginPacket::Deserialize(), SraNetwork::ReplyPacket::FAIL, SraNetwork::WorldServer::getClientInterface(), SraNetwork::ClientRegister::getInstance(), SraNetwork::ID_LOGIN_REP, SraNetwork::ClientRegister::loginClient(), MEDIUM_PRIORITY, SraNetwork::ReplyPacket::messageOpCode, packet, SraNetwork::LoginPacket::password, RELIABLE_ORDERED, SraNetwork::ReplyPacket::replyCode, SraNetwork::ReplyPacket::replyMessage, RakNet::RakPeerInterface::Send(), SraNetwork::LoginReplyPacket::Serialize(), SraNetwork::ReplyPacket::Serialize(), stream, SraNetwork::MessageData::stream, and SraNetwork::LoginPacket::username.
{
//Client has sent login data
std::cout << "Processing login message" << std::endl;
ClientRegister* reg = ClientRegister::getInstance();
LoginPacket packet;
packet.Deserialize( &message->stream );
std::string cStrUser = packet.username.C_String();
std::string cStrPw = packet.password.C_String();
int pID = reg->loginClient(cStrUser, cStrPw, message->address);
//Even if the player faild to login, we will send an answer
RakNet::RakPeerInterface *clientI = SraNetwork::WorldServer::getClientInterface();
if (clientI != NULL)
{
BitStream stream;
if (pID == -1)
{
ReplyPacket rp;
rp.replyCode = ReplyPacket::FAIL;
rp.messageOpCode = ID_LOGIN_REP;
rp.replyMessage = "Login failed, please check username and password";
rp.Serialize(&stream);
clientI->Send( &stream,
MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, message->address, false);
}
else
{
// Login successfull, reply with the pID
LoginReplyPacket lp;
lp.clientID = pID;
lp.Serialize(&stream);
clientI->Send( &stream,
MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, message->address, false);
}
}
}
Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.