public DhcpClient(IDhcpListener dhcpListener, IDhcpPacketSerializer serializer, ILogger <DhcpClient> logger) { _dhcpListener = dhcpListener; _serializer = serializer; _logger = logger; _rngCryptoServiceProvider = new RNGCryptoServiceProvider(); }
public static byte[] GetBytes(this DhcpPacket packet, IDhcpPacketSerializer serializer) { using (MemoryStream ms = new MemoryStream()) using (BinaryWriter br = new BinaryWriter(ms)) { serializer.Serialize(br, packet); return(ms.ToArray()); } }
public DhcpServer(ILogger logger, ILeaseManager leaseManager, IDhcpConfiguration configuration, IDhcpMessageSerializer messageSerializer, IDhcpPacketSerializer packetSeralizer) { Log = logger; Configuration = configuration; LeaseManager = leaseManager; MessageSerializer = messageSerializer; PacketSerializer = packetSeralizer; _requestLock = new SemaphoreSlim(1); }
public DhcpListener(ILogger <DhcpListener> logger, IDhcpPacketSerializer serializer) { _logger = logger; _serializer = serializer; _cancellationTokenSource = new CancellationTokenSource(); _udpClientEndpoint = new IPEndPoint(IPAddress.Any, DhcpClientPort); _udpClient = new UdpClient(); _udpClient.EnableBroadcast = true; _udpClient.ExclusiveAddressUse = false; }
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); }