mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 02:04:52 +01:00
Core/Logging: Fix delete player crash having logging player enabled.
closes #7437
This commit is contained in:
@@ -723,11 +723,7 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket & recv_data)
|
||||
{
|
||||
std::string dump;
|
||||
if (PlayerDumpWriter().GetDump(GUID_LOPART(guid), dump))
|
||||
{
|
||||
std::ostringstream ss;
|
||||
ss << GetAccountId() << '_' << name.c_str();
|
||||
sLog->outCharDump(ss.str().c_str(), dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
|
||||
}
|
||||
sLog->outCharDump(dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
|
||||
}
|
||||
|
||||
Player::DeleteFromDB(guid, GetAccountId());
|
||||
|
||||
@@ -435,19 +435,20 @@ void Log::outFatal(LogFilterType filter, const char * str, ...)
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void Log::outCharDump(const char* param, const char * str, ...)
|
||||
void Log::outCharDump(char const* str, uint32 accountId, uint32 guid, char const* name)
|
||||
{
|
||||
if (!str || !ShouldLog(LOG_FILTER_PLAYER_DUMP, LOG_LEVEL_INFO))
|
||||
return;
|
||||
|
||||
va_list ap;
|
||||
va_start(ap, str);
|
||||
char text[MAX_QUERY_LEN];
|
||||
vsnprintf(text, MAX_QUERY_LEN, str, ap);
|
||||
va_end(ap);
|
||||
std::ostringstream ss;
|
||||
ss << "== START DUMP == (account: " << accountId << " guid: " << guid << " name: " << name
|
||||
<< ")\n" << str << "\n== END DUMP ==\n";
|
||||
|
||||
LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_PLAYER_DUMP, text);
|
||||
msg->param1 = param;
|
||||
LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_PLAYER_DUMP, ss.str());
|
||||
ss.clear();
|
||||
ss << accountId << '_' << name;
|
||||
|
||||
msg->param1 = ss.str();
|
||||
|
||||
write(msg);
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class Log
|
||||
|
||||
void EnableDBAppenders();
|
||||
void outCommand(uint32 account, const char * str, ...) ATTR_PRINTF(3, 4);
|
||||
void outCharDump(const char* param, const char* str, ...) ATTR_PRINTF(3, 4);
|
||||
void outCharDump(char const* str, uint32 account_id, uint32 guid, char const* name);
|
||||
static std::string GetTimestampStr();
|
||||
|
||||
void SetRealmID(uint32 id);
|
||||
|
||||
Reference in New Issue
Block a user