using System; using ln.types; using System.Collections.Generic; using ln.types.net; using System.Linq; using System.Text; using System.IO; namespace ln.dhcp { public delegate Option OptionFactory(byte tag, byte[] bytes); public class Option { public byte Tag { get; } public virtual byte[] Bytes { get; set; } public Option(byte tag) { Tag = tag; } public Option(byte tag, byte[] bytes) { Tag = tag; Bytes = bytes; } public override string ToString() { return String.Format("[Option TAG={0} Bytes={1}]", Tag, BitConverter.ToString(Bytes)); } static Dictionary factories = new Dictionary(); static void AddFactory(byte tag, OptionFactory factory) => factories.Add(tag, factory); public static Option[] ParseOptions(byte[] bytes, int offset) { List