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;
|
std::string dump;
|
||||||
if (PlayerDumpWriter().GetDump(GUID_LOPART(guid), dump))
|
if (PlayerDumpWriter().GetDump(GUID_LOPART(guid), dump))
|
||||||
{
|
sLog->outCharDump(dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
|
||||||
std::ostringstream ss;
|
|
||||||
ss << GetAccountId() << '_' << name.c_str();
|
|
||||||
sLog->outCharDump(ss.str().c_str(), dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Player::DeleteFromDB(guid, GetAccountId());
|
Player::DeleteFromDB(guid, GetAccountId());
|
||||||
|
|||||||
@@ -435,19 +435,20 @@ void Log::outFatal(LogFilterType filter, const char * str, ...)
|
|||||||
va_end(ap);
|
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))
|
if (!str || !ShouldLog(LOG_FILTER_PLAYER_DUMP, LOG_LEVEL_INFO))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
va_list ap;
|
std::ostringstream ss;
|
||||||
va_start(ap, str);
|
ss << "== START DUMP == (account: " << accountId << " guid: " << guid << " name: " << name
|
||||||
char text[MAX_QUERY_LEN];
|
<< ")\n" << str << "\n== END DUMP ==\n";
|
||||||
vsnprintf(text, MAX_QUERY_LEN, str, ap);
|
|
||||||
va_end(ap);
|
|
||||||
|
|
||||||
LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_PLAYER_DUMP, text);
|
LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_PLAYER_DUMP, ss.str());
|
||||||
msg->param1 = param;
|
ss.clear();
|
||||||
|
ss << accountId << '_' << name;
|
||||||
|
|
||||||
|
msg->param1 = ss.str();
|
||||||
|
|
||||||
write(msg);
|
write(msg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class Log
|
|||||||
|
|
||||||
void EnableDBAppenders();
|
void EnableDBAppenders();
|
||||||
void outCommand(uint32 account, const char * str, ...) ATTR_PRINTF(3, 4);
|
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();
|
static std::string GetTimestampStr();
|
||||||
|
|
||||||
void SetRealmID(uint32 id);
|
void SetRealmID(uint32 id);
|
||||||
|
|||||||
Reference in New Issue
Block a user