mirror of
https://github.com/emagi/eq2emu
synced 2026-08-12 18:23:04 -04:00
3.7 KiB
3.7 KiB
File: EQStream.h
Classes
SessionRequestSessionResponseClientSessionStatsServerSessionStatsOpcodeManagerEQStreamFactoryEQStream
Functions
char GetChar(uchar in);void WriteToFile(char* pFormat, ...);void WritePackets(const char* opcodeName, uchar* data, int32 size, bool outgoing);void WritePackets(EQ2Packet* app, bool outgoing);void SetLastSeqSent(uint32);long GetMaxAckReceived();long GetNextAckToSend();long GetLastAckSent();void SetMaxAckReceived(uint32 seq);void SetNextAckToSend(uint32);void SetLastAckSent(uint32);bool CheckCombineQueue();int8 EQ2_Compress(EQ2Packet* app, int8 offset = 3);int16 GetClientVersion(){ return client_version; }void SetClientVersion(int16 version){ client_version = version; }void ResetSessionAttempts() { reconnectAttempt = 0; }bool HasSessionAttempts() { return reconnectAttempt>0; }void init(bool resetSession = true);void SetMaxLen(uint32 length) { MaxLen=length; }int8 getTimeoutDelays(){ return timeout_delays; }void addTimeoutDelay(){ timeout_delays++; }void EQ2QueuePacket(EQ2Packet* app, bool attempted_combine = false);void PreparePacket(EQ2Packet* app, int8 offset = 0);void UnPreparePacket(EQ2Packet* app);void EncryptPacket(EQ2Packet* app, int8 compress_offset, int8 offset);void FlushCombinedPacket();void SendPacket(EQApplicationPacket *p);void QueuePacket(EQProtocolPacket *p);void SendPacket(EQProtocolPacket *p);void NonSequencedPush(EQProtocolPacket *p);void SequencedPush(EQProtocolPacket *p);void CheckResend(int eq_fd);void AckPackets(uint16 seq);void Write(int eq_fd);void SetActive(bool val) { streamactive = val; }void WritePacket(int fd,EQProtocolPacket *p);void EncryptPacket(uchar* data, int16 size);uint32 GetKey() { return Key; }void SetKey(uint32 k) { Key=k; }void SetSession(uint32 s) { Session=s; }void SetLastPacketTime(uint32 t) {LastPacket=t;}void Process(const unsigned char *data, const uint32 length);void ProcessPacket(EQProtocolPacket *p, EQProtocolPacket* lastp=NULL);bool ProcessEmbeddedPacket(uchar* pBuffer, uint16 length, int8 opcode = OP_Packet);bool HandleEmbeddedPacket(EQProtocolPacket *p, int16 offset = 2, int16 length = 0);void SendSessionResponse();void SendSessionRequest();void SendDisconnect(bool setstate = true);void SendAck(uint16 seq);void SendOutOfOrderAck(uint16 seq);bool CheckTimeout(uint32 now, uint32 timeout=30) { return (LastPacket && (now-LastPacket) > timeout); }bool Stale(uint32 now, uint32 timeout=30) { return (LastPacket && (now-LastPacket) > timeout); }void InboundQueuePush(EQApplicationPacket *p);void InboundQueueClear();void OutboundQueueClear();bool HasOutgoingData();void SendKeyRequest();int16 processRSAKey(EQProtocolPacket *p, uint16 subpacket_length = 0);void RemoveData() { InboundQueueClear(); OutboundQueueClear(); if (CombinedAppPacket) delete CombinedAppPacket; }void Close() { SendDisconnect(); }bool CheckActive() { return (GetState()==ESTABLISHED); }bool CheckClosed() { return GetState()==CLOSED; }void SetOpcodeSize(uint8 s) { app_opcode_size = s; }void SetStreamType(EQStreamType t);void ProcessQueue();void Decay();void AdjustRates(uint32 average_delta);
Notable Comments
- /*
- */
- //Deltas are in ms, representing round trip times
- /000/ uint16 RequestID;
- /002/ uint32 last_local_delta;
- /006/ uint32 average_delta;
- /010/ uint32 low_delta;
- /014/ uint32 high_delta;
- /018/ uint32 last_remote_delta;
- /022/ uint64 packets_sent;