![]() |
Shadowrun: Awakened 29 September 2011 - Build 871
|
00001 #include "ClientLoginMessage.h" 00002 #include "ClientRegister.h" 00003 #include "WorldServer.h" 00004 #include "ReplyPacket.h" 00005 #include "LoginReplyPacket.h" 00006 #include "LoginPacket.h" 00007 00008 namespace SraNetwork 00009 { 00010 ClientLoginMessage::ClientLoginMessage(void) 00011 { 00012 } 00013 00014 00015 ClientLoginMessage::~ClientLoginMessage(void) 00016 { 00017 std::cout << "Deleting login message" << std::endl; 00018 } 00019 00020 SraPacket* ClientLoginMessage::createPacketFromData(const unsigned char* data) 00021 { 00022 return (LoginPacket*)data; 00023 } 00024 00025 void ClientLoginMessage::process(MessageData* message) 00026 { 00027 //Client has sent login data 00028 std::cout << "Processing login message" << std::endl; 00029 00030 ClientRegister* reg = ClientRegister::getInstance(); 00031 LoginPacket packet; 00032 packet.Deserialize( &message->stream ); 00033 std::string cStrUser = packet.username.C_String(); 00034 std::string cStrPw = packet.password.C_String(); 00035 int pID = reg->loginClient(cStrUser, cStrPw, message->address); 00036 00037 //Even if the player faild to login, we will send an answer 00038 RakNet::RakPeerInterface *clientI = SraNetwork::WorldServer::getClientInterface(); 00039 00040 if (clientI != NULL) 00041 { 00042 BitStream stream; 00043 00044 if (pID == -1) 00045 { 00046 ReplyPacket rp; 00047 rp.replyCode = ReplyPacket::FAIL; 00048 rp.messageOpCode = ID_LOGIN_REP; 00049 rp.replyMessage = "Login failed, please check username and password"; 00050 rp.Serialize(&stream); 00051 clientI->Send( &stream, 00052 MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, message->address, false); 00053 } 00054 else 00055 { 00056 // Login successfull, reply with the pID 00057 LoginReplyPacket lp; 00058 lp.clientID = pID; 00059 lp.Serialize(&stream); 00060 clientI->Send( &stream, 00061 MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, message->address, false); 00062 } 00063 00064 } 00065 } 00066 }
Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.