Beispiel #1
0
        private void LogAddressPacketReceived(LogAddressPacket packet)
        {
            // Call LogAddress listeners
            foreach (var listener in _logListeners)
            {
                listener?.Invoke(packet);
            }

            string body = packet.Body;

            if (body.Length == 0)
            {
                return;
            }

            // Call parsers
            foreach (var parser in _parseListeners)
            {
                parser.TryCallback(body);
            }

            // Call raw listeners
            foreach (var listener in _rawListeners)
            {
                listener?.Invoke(body);
            }
        }
Beispiel #2
0
        private void LogAddressPacketReceived(LogAddressPacket packet)
        {
            // Filter out checks (if there is one)
            if (RCON.Identifier.Length > 0 && packet.Body.Contains(Constants.CHECK_STR + RCON.Identifier))
            {
                return;
            }

            // Call LogAddress listeners
            foreach (var listener in _logListeners)
            {
                listener?.Invoke(packet);
            }

            string body = packet.Body;

            if (body.Length == 0)
            {
                return;
            }

            // Call parsers
            foreach (var parser in _parseListeners)
            {
                parser.TryCallback(body);
            }

            // Call raw listeners
            foreach (var listener in _rawListeners)
            {
                listener?.Invoke(body);
            }
        }
Beispiel #3
0
        private async Task StartListener()
        {
            while (true)
            {
                var result = await _udp.ReceiveAsync();

                // If the packet did not come from an accepted source, throw it out
                if (!_sources.Contains(result.RemoteEndPoint))
                {
                    return;
                }

                // Parse out the LogAddress packet
                LogAddressPacket packet = LogAddressPacket.FromBytes(result.Buffer);
                LogAddressPacketReceived(packet);
            }
        }
        private async Task StartListener()
        {
            while (true)
            {
                var result = await _udp.ReceiveAsync();

                // If the packet did not come from an accepted source, throw it out
                if (!_sources.Select(x => x.Address).Contains(result.RemoteEndPoint.Address))
                {
                    Console.WriteLine($"Packet from {result.RemoteEndPoint} not in allowed list!");
                    continue;
                }

                //Set the last server we got a packet on.
                lastServer = _sources.FirstOrDefault(x => Equals(x.Address, result.RemoteEndPoint.Address));//result.RemoteEndPoint;

                // Parse out the LogAddress packet
                LogAddressPacket packet = LogAddressPacket.FromBytes(result.Buffer);
                LogAddressPacketReceived(packet);
            }
        }