diff options
author | Andreas Habel <mail@exceptionfault.de> | 2009-08-14 19:43:59 +0200 |
---|---|---|
committer | Andreas Habel <mail@exceptionfault.de> | 2009-08-14 19:43:59 +0200 |
commit | e6471b3ffc2f4cc049184a979db7b02c41a8e475 (patch) | |
tree | 0d378513c648fedd4e82541e1a1b3bee79f3a835 | |
parent | 81c4f300074d2b6ff0efd2f581adcb700d8eed65 (diff) | |
download | manaserv-e6471b3ffc2f4cc049184a979db7b02c41a8e475.tar.gz manaserv-e6471b3ffc2f4cc049184a979db7b02c41a8e475.tar.bz2 manaserv-e6471b3ffc2f4cc049184a979db7b02c41a8e475.tar.xz manaserv-e6471b3ffc2f4cc049184a979db7b02c41a8e475.zip |
Bugfix for storing transaction messages for new created characters.
First flush the new character to the database to get it's new DatabaseID.
Calling ->getDatabaseID() before flush() will give a wrong, uninitialized
value.
-rw-r--r-- | src/account-server/accounthandler.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/account-server/accounthandler.cpp b/src/account-server/accounthandler.cpp index d04671e2..09e849bd 100644 --- a/src/account-server/accounthandler.cpp +++ b/src/account-server/accounthandler.cpp @@ -607,15 +607,16 @@ static void handleCharacterCreateMessage(AccountClient &computer, MessageIn &msg LOG_INFO("Character " << name << " was created for " << acc->getName() << "'s account."); + storage->flush(acc); // flush changes + // log transaction Transaction trans; trans.mCharacterId = newCharacter->getDatabaseID(); trans.mAction = TRANS_CHAR_CREATE; trans.mMessage = acc->getName() + " created character "; - trans.mMessage.append(" called " + name); + trans.mMessage.append("called " + name); storage->addTransaction(trans); - storage->flush(acc); // flush changes reply.writeByte(ERRMSG_OK); computer.send(reply); |