summaryrefslogtreecommitdiff
path: root/src/account-server/accounthandler.cpp
diff options
context:
space:
mode:
authorAndreas Habel <mail@exceptionfault.de>2009-08-14 19:43:59 +0200
committerAndreas Habel <mail@exceptionfault.de>2009-08-14 19:43:59 +0200
commite6471b3ffc2f4cc049184a979db7b02c41a8e475 (patch)
tree0d378513c648fedd4e82541e1a1b3bee79f3a835 /src/account-server/accounthandler.cpp
parent81c4f300074d2b6ff0efd2f581adcb700d8eed65 (diff)
downloadmanaserv-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.
Diffstat (limited to 'src/account-server/accounthandler.cpp')
-rw-r--r--src/account-server/accounthandler.cpp5
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);