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); } }
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); } }
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); } }