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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
static protected Task SerializeTimeSpan(Stream stream, DHCPOptionType optionType, TimeSpan timeSpan) { return(SerializeInt32(stream, optionType, Convert.ToInt32(timeSpan.TotalSeconds))); }
public DHCPOptionUnrecognized(int optionNumber, int optionLength, byte [] buffer, long offset) { OptionNumber = (DHCPOptionType)optionNumber; Data = new byte[optionLength]; Array.Copy(buffer, offset, Data, 0, optionLength); }