private void OnReceived(Session session, StreamBuffer buffer) { SecurePacketRequest reqPacket = new SecurePacketRequest(buffer); reqPacket.Decrypt(ServerMain.AES_IV, ServerMain.AES_Key); reqPacket.SkipHeader(); try { reqPacket.Dispatch(this, "On" + Protocol.GetName(reqPacket.PacketId)); } catch (AegisException e) when (e.ResultCodeNo == AegisResult.BufferUnderflow) { Logger.Write(LogType.Err, 2, "Cannot read more data at PacketId(=0x{0:X}).", reqPacket.PacketId); } catch (Exception e) { Logger.Write(LogType.Err, 2, e.ToString()); } }
private void OnReceived(Session session, StreamBuffer buffer) { SecurePacketRequest reqPacket = new SecurePacketRequest(buffer); reqPacket.Decrypt(_aesIV, _aesKey); reqPacket.SkipHeader(); Statistics.ReceivedBytes.Add(reqPacket.Size); Statistics.ReceivedCount.Add(1); try { if (reqPacket.PacketId == Protocol.GetID("CS_Login_Req")) OnCS_Login_Req(reqPacket); else { _user = UserManager.Find(reqPacket.UserNo); if (_user == null) { ForceClose("Invalid UserNo."); return; } if (reqPacket.SeqNo != _user.SeqNo + 1) { ForceClose("Invalid Sequence Number."); return; } _user.SeqNo = reqPacket.SeqNo; _user.Session = this; reqPacket.Dispatch(_user, "On" + Protocol.GetName(reqPacket.PacketId)); UserManager.HeartPulse(_user); } } catch (AegisException e) when (e.ResultCodeNo == AegisResult.BufferUnderflow) { Logger.Write(LogType.Err, 2, "Cannot read more data at PacketId(=0x{0:X}).", reqPacket.PacketId); } catch (Exception e) { Logger.Write(LogType.Err, 2, e.ToString()); } }