diff --git a/loginserver/client.cpp b/loginserver/client.cpp index 754c83ab5..97a885239 100644 --- a/loginserver/client.cpp +++ b/loginserver/client.cpp @@ -71,6 +71,9 @@ bool Client::Process() SendPlayToWorld((const char *) app->pBuffer); break; } + case OP_SystemFingerprint: { + break; + } } delete app; @@ -87,16 +90,19 @@ void Client::HandleSessionReady(const char *data, unsigned int size) return; } - if (size < sizeof(unsigned int)) { + if (size < sizeof(int32)) { LogError("Session ready was too small"); return; } + //existing sequence id + int32 sequence_in = *(int32*)data; + m_client_status = cs_waiting_for_login; auto *outapp = new EQApplicationPacket(OP_ChatMessage, sizeof(LoginHandShakeReply)); auto buf = reinterpret_cast(outapp->pBuffer); - buf->base_header.sequence = 0x02; + buf->base_header.sequence = sequence_in; buf->base_reply.success = true; buf->base_reply.error_str_id = 0x65; // 101 "No Error" diff --git a/loginserver/login_types.h b/loginserver/login_types.h index 580b597ec..a623ca42b 100644 --- a/loginserver/login_types.h +++ b/loginserver/login_types.h @@ -83,6 +83,12 @@ struct PlayEverquestResponse { uint32 server_number; }; +//for reference +struct SystemFingerprint { + LoginBaseMessage base_header; + char fingerprint[1]; +}; + #pragma pack() enum LSClientVersion {