Exemplo n.º 1
0
 public DhcpClient(IDhcpListener dhcpListener, IDhcpPacketSerializer serializer, ILogger <DhcpClient> logger)
 {
     _dhcpListener             = dhcpListener;
     _serializer               = serializer;
     _logger                   = logger;
     _rngCryptoServiceProvider = new RNGCryptoServiceProvider();
 }
Exemplo n.º 2
0
 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());
         }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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);
        }