Ejemplo n.º 1
0
        private void ReprocessUnknownSubOptions()
        {
            var unknownSubOptions = SubOptions
                                    .Where(x => x.Code == (byte)0)
                                    .Select(x => x as DHCPVSIUnknown)
                                    .ToList();

            foreach (var unknownSubOption in unknownSubOptions)
            {
                Type subOptionType;
                if (VSISuboptionTypes.TryGetValue(unknownSubOption.ParsedCode, out subOptionType))
                {
                    var newSubOption = (DHCPVendorSpecificInformation)Activator
                                       .CreateInstance(
                        subOptionType,
                        new object[] {
                        unknownSubOption.Data
                    }
                        );

                    SubOptions.Add(newSubOption);
                    SubOptions.Remove(unknownSubOption);
                }
            }
        }
Ejemplo n.º 2
0
        public DHCPOptionVendorSpecificInformation(int optionLength, byte[] buffer, long offset)
        {
            var index = 0;

            while (index < optionLength)
            {
                var code = buffer[index + offset];
                index++;
                var length = Convert.ToInt32(buffer[index + offset]);
                index++;

                var optionBuffer = new byte[length];
                Array.Copy(buffer, index + offset, optionBuffer, 0, length);
                index += length;

                var subOption = ParseSubOption(code, optionBuffer);
                SubOptions.Add(subOption);
            }
        }
Ejemplo n.º 3
0
 public void AddAction(MenuOption menuOption)
 {
     SubOptions.Add(menuOption);
 }