private DhcpMessage ParseRequest(DhcpData dhcpData, IDhcpPacketSerializer pSerializer, IDhcpMessageSerializer mSerializer) { DhcpPacket packet = pSerializer.Deserialize(dhcpData.MessageBuffer); DhcpMessage message; try { message = mSerializer.ToMessage(packet); } catch (Exception ex) { Log.Error($"Error Parsing Dhcp Message {ex.Message}"); throw; } return(message); }
private async Task ListenContinously(CancellationToken ct) { while (!ct.IsCancellationRequested) { var receivedBytes = await _udpClient .ReceiveAsync() .WithCancellation(ct); try { var dhcpPacket = _serializer.Deserialize(receivedBytes.Buffer); OnPacketReceived(dhcpPacket); } catch (DhcpSerializationException e) { _logger.LogDebug(e, "Received invalid UDP packet which could not be parsed as DHCP packet."); } } }