enabled detailed packet logs for easier debugging

This commit is contained in:
mq1n
2025-09-02 19:24:11 +03:00
parent 4ebc19a261
commit 2ba77cdc46
3 changed files with 43 additions and 5 deletions

View File

@@ -230,7 +230,7 @@ bool DESC::Setup(LPFDWATCH _fdw, socket_t _fd, const struct sockaddr_in & c_rSoc
// m_lpOutputBuffer = buffer_new(DEFAULT_PACKET_BUFFER_SIZE * 2);
//else
//NOTE: 이걸 나라별로 다르게 잡아야할 이유가 있나?
m_lpOutputBuffer = buffer_new(DEFAULT_PACKET_BUFFER_SIZE * 2);
m_lpOutputBuffer = buffer_new(DEFAULT_PACKET_BUFFER_SIZE * 3); // Default: 2
m_iMinInputBufferLen = MAX_INPUT_LEN >> 1;
m_lpInputBuffer = buffer_new(MAX_INPUT_LEN);
@@ -418,6 +418,12 @@ void DESC::BufferedPacket(const void * c_pvData, int iSize)
if (!m_lpBufferedOutputBuffer)
m_lpBufferedOutputBuffer = buffer_new(MAX(1024, iSize));
#ifdef _DEBUG
const std::string stName = GetCharacter() ? GetCharacter()->GetName() : GetHostName();
const auto kHeader = *(static_cast<const uint8_t*>(c_pvData));
sys_log(0, "[B] SENT HEADER : %u(0x%X) to %s (size %d) ", kHeader, kHeader, stName.c_str(), iSize);
#endif
buffer_write(m_lpBufferedOutputBuffer, c_pvData, iSize);
}
@@ -435,6 +441,12 @@ void DESC::Packet(const void * c_pvData, int iSize)
return;
}
#ifdef _DEBUG
const std::string stName = GetCharacter() ? GetCharacter()->GetName() : GetHostName();
const auto kHeader = *(static_cast<const uint8_t*>(c_pvData));
sys_log(0, "[N] SENT HEADER : %u(0x%X) to %s (size %d) ", kHeader, kHeader, stName.c_str(), iSize);
#endif
if (m_stRelayName.length() != 0)
{
// Relay 패킷은 암호화하지 않는다.

View File

@@ -111,6 +111,7 @@ class DESC
LPCHARACTER GetCharacter() { return m_lpCharacter; }
bool IsPhase(int phase) const { return m_iPhase == phase ? true : false; }
int32_t GetPhase() const { return m_iPhase; }
const struct sockaddr_in & GetAddr() { return m_SockAddr; }

View File

@@ -81,14 +81,33 @@ bool CInputProcessor::Process(LPDESC lpDesc, const void * c_pvOrig, int iBytes,
iPacketLen = 1;
else if (!m_pPacketInfo->Get(bHeader, &iPacketLen, &c_pszName))
{
sys_err("UNKNOWN HEADER: %d, LAST HEADER: %d(%d), REMAIN BYTES: %d, fd: %d",
bHeader, bLastHeader, iLastPacketLen, m_iBufferLeft, lpDesc->GetSocket());
//printdata((BYTE *) c_pvOrig, m_iBufferLeft);
LPCHARACTER ch = lpDesc->GetCharacter();
char szLogBuffer[1024];
snprintf(szLogBuffer, sizeof(szLogBuffer),
"UNKNOWN HEADER: %u(0x%X) LAST HEADER: %u(0x%X)[%u], REMAIN BYTES: %d, CHAR: %s, PHASE: %d, fd: %d host: %s",
bHeader, bHeader, bLastHeader, bLastHeader, iLastPacketLen, m_iBufferLeft,
ch ? ch->GetName() : "<none>",
lpDesc->GetPhase(), lpDesc->GetSocket(), lpDesc->GetHostName()
);
if (lpDesc->GetPhase() < PHASE_SELECT) // early phase
sys_log(0, szLogBuffer);
else
sys_err(szLogBuffer);
#if defined(_DEBUG) && defined(_WIN32)
printdata((uint8_t*)c_pvOrig, m_iBufferLeft);
#endif
lpDesc->SetPhase(PHASE_CLOSE);
return true;
}
sys_log(0, "PACKET %d (%s)", bHeader, c_pszName);
#ifdef _DEBUG
const auto ch = lpDesc->GetCharacter();
const std::string stName = ch ? ch->GetName() : lpDesc->GetHostName();
sys_log(0, "RECEIVED HEADER : %u(0x%X) to %s (size %d) ", bHeader, bHeader, stName.c_str(), iBytes);
#endif
if (m_iBufferLeft < iPacketLen)
return true;
@@ -103,7 +122,13 @@ bool CInputProcessor::Process(LPDESC lpDesc, const void * c_pvOrig, int iBytes,
int iExtraPacketSize = Analyze(lpDesc, bHeader, c_pData);
if (iExtraPacketSize < 0)
{
sys_err("Failed to analyze header(%u) size: %d phase: %d host %s from %s (%u) in: %u",
bHeader, iPacketLen, lpDesc->GetPhase(), lpDesc->GetHostName(),
ch ? ch->GetName() : "NO_CHAR", ch ? ch->GetPlayerID() : 0, ch ? ch->GetMapIndex() : 0
);
return true;
}
iPacketLen += iExtraPacketSize;
lpDesc->Log("%s %d", c_pszName, iPacketLen);