Problema core crash Handhsake Process

În cazul în care aveţi o nelămurire postaţi aici, de asemenea este locul unde puteţi găsi posibile rezolvări la problemele dvs.
Avatar utilizator
RegalOfficial
Membru Club

Membru Club
Mesaje: 91
Membru din: 07 Mai 2020, 17:01
Server: R.O.K.2
Regat: Shinsoo
Aprecieri: 189  
Mulţumiri: 9  
Discord: Copiază ID
Medalii

*Problemă/Întrebare: Core crash handhsake process
Tipologie server:
*Resursă folosită: martysama
*ServerFiles utilizat:
*Syserr: [imagelink]https://ibb.co/M8byD9n[/imagelink]
Poză:
*Detalii suplimentare: Am un crash random, uneori la cateva zile si nu-mi dau seama de unde ar putea fi, daca ati patit asa ceva si ati rezolvat sau aveti idee cum sa verific sursa problemei as fi recunoscator. Pot plati daca cineva este dispus sa ma ajute sa rezolv asta 100%. Multumesc.
Desc:: Handshake process din desc.cpp
bool DESC::HandshakeProcess(DWORD dwTime, long lDelta, bool bInfiniteRetry)
{
DWORD dwCurTime = get_dword_time();

if (lDelta < 0)
{
sys_err("Desc::HandshakeProcess : value error (lDelta %d, ip %s)", lDelta, m_stHost.c_str());
return false;
}

int bias = (int)(dwCurTime - (dwTime + lDelta));

if (bias >= 0 && bias <= 50)
{
if (bInfiniteRetry)
{
BYTE bHeader = HEADER_GC_TIME_SYNC;
Packet(&bHeader, sizeof(BYTE));
}

if (GetCharacter())
sys_log(0, "Handshake: client_time %u server_time %u name: %s", m_dwClientTime, dwCurTime, GetCharacter()->GetName());
else
sys_log(0, "Handshake: client_time %u server_time %u", m_dwClientTime, dwCurTime, lDelta);

m_dwClientTime = dwCurTime;
m_bHandshaking = false;
return true;
}

long lNewDelta = (long)(dwCurTime - dwTime) / 2;

if (lNewDelta < 0)
{
sys_log(0, "Handshake: lower than zero %d", lNewDelta);
lNewDelta = (dwCurTime - m_dwHandshakeSentTime) / 2;
}

sys_log(1, "Handshake: ServerTime %u dwTime %u lDelta %d SentTime %u lNewDelta %d", dwCurTime, dwTime, lDelta, m_dwHandshakeSentTime, lNewDelta);

if (!bInfiniteRetry)
if (++m_iHandshakeRetry > HANDSHAKE_RETRY_LIMIT)
{
sys_err("handshake retry limit reached! (limit %d character %s)",
HANDSHAKE_RETRY_LIMIT, GetCharacter() ? GetCharacter()->GetName() : "!NO CHARACTER!");
SetPhase(PHASE_CLOSE);
return false;
}

SendHandshake(dwCurTime, lNewDelta);
return false;
}
Răspunde
Răspunsuri
15
Vizualizări
2190
Răspunsuri
1
Vizualizări
88
Răspunsuri
8
Vizualizări
329
Răspunsuri
2
Vizualizări
170

Înapoi la “Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 2 vizitatori