private void OnClientRead(byte[] e) { if (ClientRead != null) { try { _parentServer.BytesReceived += e.LongLength; if (compressionEnabled) { e = new LZ4.LZ4Decompressor32().Decompress(e); } if (encryptionEnabled) { e = RC4.Decrypt(e, XMLSettings.Password); } using (MemoryStream deserialized = new MemoryStream(e)) { IPacket packet = Serializer.DeserializeWithLengthPrefix <IPacket>(deserialized, PrefixStyle.Fixed32); if (packet.GetType() == typeof(KeepAliveResponse)) { _parentServer.HandleKeepAlivePacket((KeepAliveResponse)packet, this); } else if (packet.GetType() == typeof(KeepAlive)) { new KeepAliveResponse() { TimeSent = ((KeepAlive)packet).TimeSent } } .Execute(this); else { ClientRead(this, packet); } }
private void OnClientRead(byte[] e) { if (ClientRead != null) { try { if (compressionEnabled) { e = new LZ4.LZ4Decompressor32().Decompress(e); } if (encryptionEnabled) { e = AES.Decrypt(e, Encoding.UTF8.GetBytes(Settings.PASSWORD)); } using (MemoryStream deserialized = new MemoryStream(e)) { IPacket packet = Serializer.DeserializeWithLengthPrefix <IPacket>(deserialized, PrefixStyle.Fixed32); if (packet.GetType() == typeof(KeepAlive)) { new KeepAliveResponse() { TimeSent = ((KeepAlive)packet).TimeSent } } .Execute(this); else if (packet.GetType() == typeof(KeepAliveResponse)) { HandleKeepAlivePacket((KeepAliveResponse)packet, this); } else { ClientRead(this, packet); } }