static IDhcpOption ParseDhcpOption( byte optionCode, byte length, byte[] srcBuffer, int offset) { byte type = optionCode; switch (optionCode) { case DhcpSubnetMask.OptionCode: return(DhcpIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpTimeOffset.OptionCode: return(DhcpDWordOption.Parse(type, length, srcBuffer, offset)); case DhcpRouter.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpTimeServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpNameServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpDomainNameServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpLogServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpCookieServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpLprServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpImpressServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpResourceLocationServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpHostName.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpBootFileSize.OptionCode: return(DhcpWordOption.Parse(type, length, srcBuffer, offset)); case DhcpMeritDumpFile.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpDomainName.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpSwapServer.OptionCode: return(DhcpIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpRootPath.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpExtensionsPath.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpIPForwarding.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpForwardRemoteSourceRoute.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpPolicyFilter.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpMaximumDatagramReassembly.OptionCode: return(DhcpWordOption.Parse(type, length, srcBuffer, offset)); case DhcpDefaultTtl.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpPathMtuAgingTimeout.OptionCode: return(DhcpDWordOption.Parse(type, length, srcBuffer, offset)); case DhcpPathMtuPlateauTable.OptionCode: return(DhcpMultiWordOption.Parse(type, length, srcBuffer, offset)); case DhcpInterfaceMtu.OptionCode: return(DhcpWordOption.Parse(type, length, srcBuffer, offset)); case DhcpAllSubnetsLocal.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpBroadcastAddress.OptionCode: return(DhcpIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpMaskDiscovery.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpMaskSupplier.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpRouterDiscovery.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpRouterSolicitationAddress.OptionCode: return(DhcpIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpStaticRoutes.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpTrailerEncapsulate.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpArpCacheTimeout.OptionCode: return(DhcpDWordOption.Parse(type, length, srcBuffer, offset)); case DhcpEthernetEncapsulation.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpTcpDefaultTtl.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpTcpKeepalive.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpTcpKeepaliveGarbage.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpNisDomain.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpNisServers.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpNtpServers.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpVendorSpecific.OptionCode: return(DhcpMultiByteOption.Parse(type, length, srcBuffer, offset)); case DhcpNetBiosNameServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpNetBiosDistributionServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpNetBiosType.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpNetBiosScope.OptionCode: return(DhcpMultiDWordOption.Parse(type, length, srcBuffer, offset)); case DhcpXWindowsFontServer.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpXWindowsDisplayManager.OptionCode: return(DhcpMultiIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpRequestedIPAddress.OptionCode: return(DhcpIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpIPAddressLeaseTime.OptionCode: return(DhcpDWordOption.Parse(type, length, srcBuffer, offset)); case DhcpOverloadIndicator.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpMessageType.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); case DhcpServerID.OptionCode: return(DhcpIPv4Option.Parse(type, length, srcBuffer, offset)); case DhcpParameterRequest.OptionCode: return(DhcpMultiByteOption.Parse(type, length, srcBuffer, offset)); case DhcpMessage.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpMaximumMessageSize.OptionCode: return(DhcpWordOption.Parse(type, length, srcBuffer, offset)); case DhcpRenewalTime.OptionCode: return(DhcpDWordOption.Parse(type, length, srcBuffer, offset)); case DhcpRebindingTime.OptionCode: return(DhcpDWordOption.Parse(type, length, srcBuffer, offset)); case DhcpClassID.OptionCode: return(DhcpStringOption.Parse(type, length, srcBuffer, offset)); case DhcpClientID.OptionCode: return(DhcpMultiByteOption.Parse(type, length, srcBuffer, offset)); case DhcpAutoConfigure.OptionCode: return(DhcpByteOption.Parse(type, length, srcBuffer, offset)); default: return(null); } }