From: Andrew C. <ac...@us...> - 2002-03-29 05:58:27
|
Update of /cvsroot/planeshift/planeshift/src/common/net In directory usw-pr-cvs1:/tmp/cvs-serv16172/src/common/net Modified Files: client.h messages.cpp messages.h Log Message: BIG commit. Added upload character. See history Index: client.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/common/net/client.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** client.h 24 Mar 2002 15:02:22 -0000 1.8 --- client.h 29 Mar 2002 05:58:24 -0000 1.9 *************** *** 52,55 **** --- 52,60 ---- uint32_t GetClientNum() const { return clientnum; } + /// The account number for this client. + int GetAccountID() { return accountID; } + int SetAccountID(int ID) { accountID = ID; } + + /** * convenience function for getting playername (It's the name of the *************** *** 86,89 **** --- 91,95 ---- protected: iCelEntity* entity; + int accountID; }; Index: messages.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/common/net/messages.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** messages.cpp 27 Mar 2002 07:09:10 -0000 1.19 --- messages.cpp 29 Mar 2002 05:58:24 -0000 1.20 *************** *** 21,24 **** --- 21,25 ---- #include <malloc.h> #include <string.h> + #include <csutil/databuf.h> #include "util/strutil.h" *************** *** 26,31 **** #include "net/netthread.h" psAuthenticationMessage::psAuthenticationMessage(uint32_t clientnum, ! const char *userid,const char *password) { if (!userid || !password) --- 27,37 ---- #include "net/netthread.h" + SCF_IMPLEMENT_IBASE(psCharUploadMessage::psCharacterBuffer) + SCF_IMPLEMENTS_INTERFACE(iDataBuffer) + SCF_IMPLEMENT_IBASE_END + + psAuthenticationMessage::psAuthenticationMessage(uint32_t clientnum, ! const char *userid,const char *password, bool playerCheck) { if (!userid || !password) *************** *** 34,41 **** return; } ! // Right now message is "id/pwd", but later we can encrypt this char buff[200]; ! strcpy(buff,userid); strcat(buff,"/"); strcat(buff,password); --- 40,48 ---- return; } ! // Right now message is "id/pwd", but later we can encrypt this char buff[200]; ! sprintf(buff,"%d", playerCheck); ! strcat(buff,userid); strcat(buff,"/"); strcat(buff,password); *************** *** 54,59 **** if (!message) return; ! ! csString temp = message->data->data; // Divide user and password const char *pSlash = strchr(temp.GetData(),'/'); --- 61,70 ---- if (!message) return; ! ! char c = message->data->data[0]; ! (c == '0') ? bPlayerCheck = false : bPlayerCheck = true; ! ! ! csString temp = message->data->data+1; // Divide user and password const char *pSlash = strchr(temp.GetData(),'/'); *************** *** 178,182 **** default: pType = "Unknown"; break; } ! return pType; } --- 189,193 ---- default: pType = "Unknown"; break; } ! return pType; } *************** *** 373,375 **** --- 384,399 ---- actor = *pID; + } + + + psCharApprovedMessage::psCharApprovedMessage(uint32_t clientnum) + { + msg = new MsgEntry(); + + msg->data->type = MSGTYPECHARUPLOAD; + msg->clientnum = clientnum; + } + + psCharApprovedMessage::psCharApprovedMessage(const MsgEntry* message) + { } Index: messages.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/common/net/messages.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** messages.h 18 Mar 2002 15:34:13 -0000 1.22 --- messages.h 29 Mar 2002 05:58:24 -0000 1.23 *************** *** 11,14 **** --- 11,15 ---- #include "net/message.h" #include <csutil/csstring.h> + #include <csutil/databuf.h> #define MSGTYPEAUTHENTICATE PS_MSGID('A','U','T','H') *************** *** 21,24 **** --- 22,27 ---- #define MSGTYPEUSERCMD PS_MSGID('U','S','R','C') #define MSGTYPESYSTEM PS_MSGID('S','Y','S','M') + #define MSGTYPECHARUPLOAD PS_MSGID('C','H','A','R') + class psMessageCracker *************** *** 44,48 **** csString sAddr; csString sUser,sPassword; ! /** * This function creates a PS Message struct given a userid and --- 47,51 ---- csString sAddr; csString sUser,sPassword; ! bool bPlayerCheck; /** * This function creates a PS Message struct given a userid and *************** *** 51,55 **** */ psAuthenticationMessage(uint32_t clientnum,const char *userid, ! const char *password); /** --- 54,58 ---- */ psAuthenticationMessage(uint32_t clientnum,const char *userid, ! const char *password, bool playerCheck=true); /** *************** *** 99,103 **** BADDATA = 1, SERVERNOTREADY = 2, ! ALREADYON = 3 }; }; --- 102,107 ---- BADDATA = 1, SERVERNOTREADY = 2, ! ALREADYON = 3, ! NOCHARACTER = 4 }; }; *************** *** 196,199 **** --- 200,261 ---- psDisconnectMessage(const MsgEntry *message); }; + + + class psCharApprovedMessage : public psMessageCracker + { + public: + psCharApprovedMessage( uint32_t clientnum ); + psCharApprovedMessage( const MsgEntry* msg); + }; + + class psCharUploadMessage + { + public: + psCharUploadMessage::psCharUploadMessage(uint32_t clientnum, + iDataBuffer* databuff) : data(NULL) + { + me = new MsgEntry(databuff->GetSize(), PRIORITY_HIGH); + me->clientnum = clientnum; + me->data->type = MSGTYPECHARUPLOAD; + void* data = (void*)me->data->data; + memcpy(data, databuff->GetData(), databuff->GetSize()); + } + + psCharUploadMessage::psCharUploadMessage( const MsgEntry* me ) + : me(NULL) + { + void* datastart = (void*)me->data->data; + data = new psCharacterBuffer((char*)datastart, me->data->size); + } + + ~psCharUploadMessage() + { + if ( me ) me->DecRef(); + if ( data ) data->DecRef(); + } + + MsgEntry* me; + + class psCharacterBuffer : public iDataBuffer + { + protected: + char* data; + size_t len; + + public: + SCF_DECLARE_IBASE; + + psCharacterBuffer( char* data, size_t len ) + { + SCF_CONSTRUCT_IBASE(0); + + this->data = data; + this->len = len; + } + virtual size_t GetSize() const { return len; } + virtual csSome GetData() const { return data; } + }*data; + }; + #endif |