From be548ff54b8fa60a8a778714cd8fa5326722c0aa Mon Sep 17 00:00:00 2001 From: David Athay Date: Thu, 5 Mar 2009 14:30:19 +0000 Subject: Added transactional history --- src/account-server/accounthandler.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/account-server/accounthandler.cpp') diff --git a/src/account-server/accounthandler.cpp b/src/account-server/accounthandler.cpp index 27d96176..a1280e35 100644 --- a/src/account-server/accounthandler.cpp +++ b/src/account-server/accounthandler.cpp @@ -28,6 +28,7 @@ #include "account-server/character.hpp" #include "account-server/dalstorage.hpp" #include "account-server/serverhandler.hpp" +#include "account-server/transaction.hpp" #include "chat-server/chathandler.hpp" #include "common/configuration.hpp" #include "net/connectionhandler.hpp" @@ -604,6 +605,14 @@ static void handleCharacterCreateMessage(AccountClient &computer, MessageIn &msg LOG_INFO("Character " << name << " was created for " << acc->getName() << "'s account."); + // log transaction + Transaction trans; + trans.mCharacterId = newCharacter->getDatabaseID(); + trans.mAction = TRANS_CHAR_CREATE; + trans.mMessage = acc->getName() + " created character "; + trans.mMessage.append(" called " + name); + storage->addTransaction(trans); + storage->flush(acc); // flush changes reply.writeByte(ERRMSG_OK); computer.send(reply); @@ -674,6 +683,13 @@ static void handleCharacterSelectMessage(AccountClient &computer, MessageIn &msg registerChatClient(magic_token, selectedChar->getName(), acc->getLevel()); computer.send(reply); + + // log transaction + Transaction trans; + trans.mCharacterId = selectedChar->getDatabaseID(); + trans.mAction = TRANS_CHAR_SELECTED; + trans.mMessage = ""; + storage->addTransaction(trans); } static void handleCharacterDeleteMessage(AccountClient &computer, MessageIn &msg) @@ -707,6 +723,14 @@ static void handleCharacterDeleteMessage(AccountClient &computer, MessageIn &msg reply.writeByte(ERRMSG_OK); computer.send(reply); + + // log transaction + Transaction trans; + trans.mCharacterId = chars[charNum]->getDatabaseID(); + trans.mAction = TRANS_CHAR_DELETED; + trans.mMessage = chars[charNum]->getName() + " deleted by "; + trans.mMessage.append(acc->getName()); + storage->addTransaction(trans); } void -- cgit v1.2.3-70-g09d2