aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Mails/Mail.cpp
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-05-21 14:24:46 +0200
committerMachiavelli <machiavelli.trinity@gmail.com>2011-05-21 14:24:46 +0200
commit59c0670f442f6beb875c24cedd2bd8dba6fdd1f0 (patch)
tree21f51f9ee6e31b106f0bd674589553e9091eb430 /src/server/game/Mails/Mail.cpp
parentc3778487f07752c425cef98fa496cda450d46f9b (diff)
Core/DBLayer: Fix possible transaction deadlock in HandleMailReturnToSender opcode
Diffstat (limited to 'src/server/game/Mails/Mail.cpp')
-rwxr-xr-xsrc/server/game/Mails/Mail.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index a76b1020f46..17932d22aff 100755
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -126,7 +126,7 @@ void MailDraft::deleteIncludedItems(SQLTransaction& trans, bool inDB /*= false*/
m_items.clear();
}
-void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 receiver_guid)
+void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 receiver_guid, SQLTransaction& trans)
{
Player *receiver = sObjectMgr->GetPlayer(MAKE_NEW_GUID(receiver_guid, 0, HIGHGUID_PLAYER));
@@ -134,8 +134,6 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32
if (!receiver)
rc_account = sObjectMgr->GetPlayerAccountIdByGUID(MAKE_NEW_GUID(receiver_guid, 0, HIGHGUID_PLAYER));
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
-
if (!receiver && !rc_account) // sender not exist
{
deleteIncludedItems(trans, true);
@@ -168,7 +166,6 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32
// will delete item or place to receiver mail list
SendMailTo(trans, MailReceiver(receiver, receiver_guid), MailSender(MAIL_NORMAL, sender_guid), MAIL_CHECK_MASK_RETURNED, deliver_delay);
- CharacterDatabase.CommitTransaction(trans);
}
void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay)