Teszt szerver packet hib

Indította TheSLESH, 2019-07-17, 14:22:47

Sziasztok! Teszt szerveremen, előjött egy hiba (~30 teszter van fent, tehát nincs túlterhelve)

heart_idle: losing 199 seconds. (lag occured)
socket_accept: accept: Software caused connection abort (fd 12)
Analyze: Handshake phase does not handle packet 15 (fd 28)
És ettől leáll a szerver.

input.cpp-ben találtam meg a handshake-s hibaüzenetet.

else
sys_err("Handshake phase does not handle packet %d (fd %d)", bHeader, d->GetSocket());

return 0;


Ha jól értelmezem, akkor a int CInputHandshake::Analyze függvény 15. headerje a hiba, nos 6 header van benne.

HEADER_CG_TEXT
HEADER_CG_MARK_LOGIN
HEADER_CG_STATE_CHECKER
HEADER_CG_PONG
HEADER_CG_HANDSHAKE
HEADER_CG_KEY_AGREEMENT

a vége:

else if (bHeader == HEADER_CG_PONG)
Pong(d);
else if (bHeader == HEADER_CG_HANDSHAKE)
Handshake(d, c_pData);
#ifdef _IMPROVED_PACKET_ENCRYPTION_
else if (bHeader == HEADER_CG_KEY_AGREEMENT)
{
// Send out the key agreement completion packet first
// to help client to enter encryption mode
d->SendKeyAgreementCompleted();
// Flush socket output before going encrypted
d->ProcessOutput();

TPacketKeyAgreement* p = (TPacketKeyAgreement*)c_pData;
if (!d->IsCipherPrepared())
{
sys_err ("Cipher isn't prepared. %s maybe a wer.", inet_ntoa(d->GetAddr().sin_addr));
d->DelayedDisconnect(5);
return 0;
}
if (d->FinishHandshake(p->wAgreedLength, p->data, p->wDataLength)) {
// Handshaking succeeded
if (g_bAuthServer) {
d->SetPhase(PHASE_AUTH);
} else {
d->SetPhase(PHASE_LOGIN);
}
} else {
sys_log(0, "[CInputHandshake] Key agreement failed: al=%u dl=%u",
p->wAgreedLength, p->wDataLength);
d->SetPhase(PHASE_CLOSE);
}
}
#endif // _IMPROVED_PACKET_ENCRYPTION_
else
sys_err("Handshake phase does not handle packet %d (fd %d)", bHeader, d->GetSocket());

return 0;
}


nos, így sajnos nem tudom értelmezni, azt a 15 és 28-as számot...
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.

Leáll a szerver, vagy crashelt? nem mindegy....
Hamarosan...

Leall tőle
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.

PACKET_ENCRYPTION aktív? ha igen offold ki nekem ez okozott elég sok packet hibát köztük a neked fennállót is!
továbbá ezt  [spoiler]Set(HEADER_CG_PONG, sizeof(BYTE), "Pong", true);[/spoiler]
modosítsd: [spoiler]Set(HEADER_CG_PONG, sizeof(BYTE), "Pong", false);[/spoiler]
Nem vagyok profi,de amiben tudok segítek!

2019-08-03, 16:25:56 #4 Utolsó szerkesztés: 2019-08-03, 16:41:21 Szerző: Chookez™
Igazából a legegyszerűbb ha teljesen kiszedi a "PACKET_ENRYPTION"-t, én is kiszedtem, bár beletelt egy kis időbe, de megérte.  ;)

Egyébként ha csak kioffolod 1-2 helyen, mint azt jó néhány fórumon írják, csak rosszabb lesz. :D

Igen ezt én is megakarom tenni, elméetileg ha kiszedjük jelentősen gyorsabban kapcsolódunk a szerverre, + elméletileg pár bontót is kioffolunk vele, de én szerintem oka van annak hogy ymir ezt igy csinálta, csak én nem tudom hogy mi :D
Ha segítettem vagy akármi érted, akkor a +-t elfogadom.

Ezt vitatnám, ugyanis ha aktív, az encryption, akkor gyorsabb a login de ezenkívűl semmit nem csinál, és az hogy ki offol pár bontót a legnagyobb marhaság amit hallottam.
Nem vagyok profi,de amiben tudok segítek!

Régen ez volt a pong, amivel az indító és a game fájl kapcsolatot teremtett egymással. Egyfajta csomagküldő (packet). Csak átálltak az Ujjlenyomatosra, és ez meg benne maradt.

Alone, epvp-n olvastam. :D
Itt egy videó róla: https://www.youtube.com/watch?v=Rp2EeICMkFU&feature=youtu.be
Ha segítettem vagy akármi érted, akkor a +-t elfogadom.

A videóban be van kapcsolva a packet encryption azért gyors a login... De ennek még mindig semmi köze a bontáshoz nem tudom milyen helyen olvastad de aki ezt írta nem volt józan
Nem vagyok profi,de amiben tudok segítek!

2019-08-05, 10:38:42 #10 Utolsó szerkesztés: 2019-08-05, 10:40:48 Szerző: Chookez™
IdézA videóban be van kapcsolva a packet encryption

Még jó hogy ki van kapcsolva a videóban.  :-X  :o

Idézetet írta: Chookez™ Dátum 2019-08-05, 10:38:42
IdézA videóban be van kapcsolva a packet encryption

Még jó hogy ki van kapcsolva a videóban.  :-X  :o De látom csak eszetlenül ontod a hülyeségeidet.

Na mivan kötekedünk-kötekedünk?

IdézMég jó hogy ki van kapcsolva a videóban.  :-X  :o De látom csak eszetlenül ontod a hülyeségeidet.
Ha más nem megy neki
Nem vagyok profi,de amiben tudok segítek!

Látom a "fórum kommandó" már rám is szált.
IdézMár miért volna egyszerűbb ki belezni, mint kikapcsolni? ?? Fu*k logic...

Tudod én úgy vagyok vele, ha valamit csinálok azt 100%-osan el is végzem, nem csak a 20%-át.
A te gondolkodásod olyan "YMIR" logikára alapul, ezek szerint.

@Mark881 Nem tudtam hogy a ti korosztályotoknál az önkifejezés már-már kötekedésnek számít.
Idézóvodások farok méregetése
Nyugodtan össze mérhetjük, nem tart vissza semmi és senki.  :o

IdézTudod én úgy vagyok vele, ha valamit csinálok azt 100%-osan el is végzem, nem csak a 20%-át.
A te gondolkodásod olyan "YMIR" logikára alapul, ezek szerint.

A hiba itt kezdődik ennél a mondatodnál :) te a ymirel ellentétbe nem raktál le semmit az asztalra, és mégis jobbnak tartod magad a "yimir" nél :D Ez azért elég érdekes és hát gyerekes :) Fura egy figura vagy az ku*va isten :) Nekem ezzel nincs is bajom, csak ha már írsz, akkor válaszolj is a kérdezőnek, és ne kötekedés gyaránt játszd az agyad! Ha már "farok méregetést szeretnél várom a privátot" ;)
Nem vagyok profi,de amiben tudok segítek!

2019-08-09, 01:31:34 #15 Utolsó szerkesztés: 2019-08-09, 01:36:33 Szerző: Distraught
Miért kiszedjük egyből? Javítsuk meg! A kódrészlet alapján egyszerűen nincsen lekezelve az adott headerrel ellátott packet. A hibaüzenetből megtudod, hogy az a 15-ös értékű. Nézd meg, hogy a 15-ös headerű packet mihez tartozna és miért ez az Analyze kapta meg. Nem azt kell mondani, hogy szar az egész és kibaszni, hanem debugolni...

Egyébként véletlen nem a HEADER_CG_KEY_AGREEMENT enumerátor értéke 15 és csak nincs definiálva a _IMPROVED_PACKET_ENCRYPTION_ és így bele se fordul az alkalmazásba az az ág?

Próbáljuk már meg értelmezni a kódot és nem csak nekiesni a szerver"fejlesztésnek", mint tót az anyjának...

C++ programmer at Gameloft