Shadowrun: Awakened 29 September 2011 - Build 871
Public Member Functions
SraNetwork::ClientLoginMessage Class Reference

#include <ClientLoginMessage.h>

Inheritance diagram for SraNetwork::ClientLoginMessage:

List of all members.

Public Member Functions

 ClientLoginMessage (void)
virtual SraPacketcreatePacketFromData (const unsigned char *data)
virtual void process (MessageData *message)
 ~ClientLoginMessage (void)

Detailed Description

Definition at line 19 of file ClientLoginMessage.h.


Constructor & Destructor Documentation

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;
    }

Member Function Documentation

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);
            }
            
        }
    }

The documentation for this class was generated from the following files:

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net