Exemplo n.º 1
0
        static protected Task SerializeUInt8(Stream stream, DHCPOptionType optionType, byte value)
        {
            var buffer = new byte[] {
                Convert.ToByte(optionType),
                1,
                value
            };

            return(stream.WriteAsync(buffer, 0, buffer.Length));
        }
Exemplo n.º 2
0
        protected Task SerializeBytes(Stream stream, DHCPOptionType optionType, byte[] value)
        {
            var buffer = new byte[2 + value.Length];

            buffer[0] = Convert.ToByte(optionType);
            buffer[1] = Convert.ToByte(2 + value.Length);

            Array.Copy(value, 0, buffer, 2, value.Length);

            return(stream.WriteAsync(buffer, 0, buffer.Length));
        }
Exemplo n.º 3
0
        static protected Task SerializeInt32(Stream stream, DHCPOptionType optionType, Int32 value)
        {
            var buffer = new byte[] {
                Convert.ToByte(optionType),
                4,
                0, 0, 0, 0
            };

            WriteInt32(value, ref buffer, 2);

            return(stream.WriteAsync(buffer, 0, buffer.Length));
        }
Exemplo n.º 4
0
        static protected Task SerializeASCII(Stream stream, DHCPOptionType optionType, string value)
        {
            var buffer = new byte[2 + value.Length];

            buffer[0] = Convert.ToByte(optionType);
            buffer[1] = Convert.ToByte(value.Length);

            var encoded = Encoding.ASCII.GetBytes(value);

            Array.Copy(encoded, 0, buffer, 2, encoded.Length);

            return(stream.WriteAsync(buffer, 0, buffer.Length));
        }
Exemplo n.º 5
0
        protected Task SerializeIPAddressList(Stream stream, DHCPOptionType optionType, List <IPAddress> addresses)
        {
            var buffer = new byte[2 + (4 * addresses.Count)];

            buffer[0] = Convert.ToByte(optionType);
            buffer[1] = Convert.ToByte(4 * addresses.Count);
            for (var i = 0; i < addresses.Count; i++)
            {
                Array.Copy(addresses[i].GetAddressBytes(), 0, buffer, 2 + (i * 4), 4);
            }

            return(stream.WriteAsync(buffer, 0, buffer.Length));
        }
Exemplo n.º 6
0
        protected Task SerializeIPAddress(Stream stream, DHCPOptionType optionType, IPAddress address)
        {
            var buffer = new byte[]
            {
                Convert.ToByte(optionType),
                4,
                0, 0, 0, 0
            };

            Array.Copy(address.GetAddressBytes(), 0, buffer, 2, 4);

            return(stream.WriteAsync(buffer, 0, buffer.Length));
        }
Exemplo n.º 7
0
 static protected Task SerializeTimeSpan(Stream stream, DHCPOptionType optionType, TimeSpan timeSpan)
 {
     return(SerializeInt32(stream, optionType, Convert.ToInt32(timeSpan.TotalSeconds)));
 }
Exemplo n.º 8
0
 public DHCPOptionUnrecognized(int optionNumber, int optionLength, byte [] buffer, long offset)
 {
     OptionNumber = (DHCPOptionType)optionNumber;
     Data         = new byte[optionLength];
     Array.Copy(buffer, offset, Data, 0, optionLength);
 }