Exemplo n.º 1
0
        /// <summary>
        /// Phương thức khởi tạo tĩnh. Khởi tạo các template cho từng từng DHCPOption Code. Những DHCPOption chưa tạo class thì dùng class DHCPOptionGeneric
        /// </summary>
        static DHCPMessage()
        {
            optionsTemplates = new IDHCPOption[256];
            for (int t = 1; t < 255; t++)
            {
                optionsTemplates[t] = new DHCPOptionGeneric((EDHCPOption)t);
            }

            RegisterOption(new DHCPOptionFixedLength(EDHCPOption.Pad));
            RegisterOption(new DHCPOptionFixedLength(EDHCPOption.End));
            RegisterOption(new DHCPOptionSubnetMask1());
            RegisterOption(new DHCPOptionDefaultRouter3());
            RegisterOption(new DHCPOptionDomainNameServer6());
            RegisterOption(new DHCPOptionRequestedIPAddress50());
            RegisterOption(new DHCPOptionIPAddressLeaseTime51());
            RegisterOption(new DHCPOptionMessageType53());
            RegisterOption(new DHCPOptionServerIdentifier54());
            RegisterOption(new DHCPOptionParameterRequestList55());
            RegisterOption(new DHCPOptionMessage56());
            RegisterOption(new DHCPOptionMaximumMessageSize57());
            RegisterOption(new DHCPOptionVendorClassIdentifier60());
            RegisterOption(new DHCPOptionClientIdentifier61());

            // HAVE TO DO
            // RegisterOption(new DHCPOptionHostName());
            // RegisterOption(new DHCPOptionOptionOverload());
            // RegisterOption(new DHCPOptionTFTPServerName());
            // RegisterOption(new DHCPOptionBootFileName());
            // RegisterOption(new DHCPOptionRenewalTimeValue());
            // RegisterOption(new DHCPOptionRebindingTimeValue());
        }
        public override IDHCPOption FromStream(Stream stream)
        {
            var obj = new DHCPOptionGeneric(_optionType);

            obj._Data = new byte[stream.Length];
            stream.Read(obj._Data, 0, obj._Data.Length);
            return(obj);
        }