Beispiel #1
0
        private void HandleReceived_Client(MhfClient client, MhfPacket packet)
        {
            if (!_clientHandlers.ContainsKey(packet.Id))
            {
                //_logger.LogUnknownIncomingPacket(client, packet);
                return;
            }

            IClientHandler clientHandler = _clientHandlers[packet.Id];

            if (clientHandler.ExpectedSize != NoExpectedSize && packet.Data.Size < clientHandler.ExpectedSize)
            {
                _logger.Error(client,
                              $"Ignoring Packed (Id:{packet.Id}) is smaller ({packet.Data.Size}) than expected ({clientHandler.ExpectedSize})");
                return;
            }

            //  _logger.LogIncomingPacket(client, packet);
            packet.Data.SetPositionStart();
            try
            {
                clientHandler.Handle(client, packet);
            }
            catch (Exception ex)
            {
                _logger.Exception(client, ex);
            }
        }
Beispiel #2
0
 public MhfLogPacket(string clientIdentity, MhfPacket packet, MhfLogType logType)
     : base(packet.Header, packet.Data.Clone())
 {
     LogType        = logType;
     TimeStamp      = DateTime.Now;
     ClientIdentity = clientIdentity;
 }
Beispiel #3
0
 public void LogOutgoingPacket(MhfClient client, MhfPacket packet)
 {
     if (_setting.LogOutgoingPackets)
     {
         MhfLogPacket logPacket = new MhfLogPacket(client.Identity, packet, MhfLogType.PacketOut);
         WritePacket(logPacket);
     }
 }
Beispiel #4
0
 public void LogUnknownIncomingPacket(MhfClient client, MhfPacket packet)
 {
     if (_setting.LogUnknownIncomingPackets)
     {
         MhfLogPacket logPacket = new MhfLogPacket(client.Identity, packet, MhfLogType.PacketUnhandled);
         WritePacket(logPacket);
     }
 }
Beispiel #5
0
        public override void Handle(MhfConnection connection, MhfPacket packet)
        {
            string keySign    = packet.Data.ReadCString();
            string userId     = packet.Data.ReadCString();
            string sessionKey = packet.Data.ReadCString();

            Logger.Info($"Auth Request: KeySign:{keySign} UserId:{userId} SessionKey:{sessionKey}");

            MsgHeadResponse response = new MsgHeadResponse();

            Router.Send(response, connection);
        }
Beispiel #6
0
        public void Send(MhfPacket packet)
        {
            byte[] data;
            try
            {
                data = PacketFactory.Write(packet);
            }
            catch (Exception ex)
            {
                _logger.Exception(this, ex);
                return;
            }

            //  _logger.LogOutgoingPacket(this, packet);
            Socket.Send(data);
        }
Beispiel #7
0
        public void LogOutgoingPacket(MhfConnection connection, MhfPacket packet)
        {
            MhfClient client = connection.Client;

            if (client != null)
            {
                LogOutgoingPacket(client, packet);
                return;
            }

            if (!_setting.LogIncomingPackets)
            {
                return;
            }

            MhfLogPacket logPacket = new MhfLogPacket(connection.Identity, packet, MhfLogType.PacketOut);

            WritePacket(logPacket);
        }
Beispiel #8
0
 public void Send(MhfPacket packet)
 {
     Connection.Send(packet);
 }