private NetWareIpState ParseState(IBinaryValue binaryValue) { var stateByte = binaryValue.AsByte(); if (!Enum.IsDefined(typeof(NetWareIpState), stateByte)) { throw new FormatException( "The first byte of the NetWare SubOptions Option (DHCP Option code 63) must be between 0x01 and 0x04."); } return((NetWareIpState)stateByte); }
internal DhcpVendorSpecificInformationOption(IBinaryValue value) { Value = value; }
public DhcpClassIdOption(IBinaryValue classId) { ClassId = classId; }
public DhcpClientIdOption(IBinaryValue clientId) { ClientId = clientId; }
private IReadOnlyList <INetWareSubOption> ParseSubOptions(IBinaryValue binaryValue) { var valueCollection = binaryValue.AsTaggedValueCollection(); var subOptions = new List <INetWareSubOption>(); foreach (var keyValuePair in valueCollection) { if (Enum.IsDefined(typeof(NetWareIpState), keyValuePair.Key)) { // State should be only in first byte, others are ignored continue; } switch (keyValuePair.Key) { case 0x05: { var value = keyValuePair.Value.AsBoolean(); var subOption = new NetWareNsqBroadcastSubOption(value); subOptions.Add(subOption); } break; case 0x06: { var value = keyValuePair.Value.AsIpAddressList(); var subOption = new NetWarePreferredDssSubOption(value); subOptions.Add(subOption); } break; case 0x07: { var value = keyValuePair.Value.AsIpAddressList(); var subOption = new NetWareNearestNwipServerSubOption(value); subOptions.Add(subOption); } break; case 0x08: { var value = keyValuePair.Value.AsByte(); var subOption = new NetWareAutoRetriesSubOption(value); subOptions.Add(subOption); } break; case 0x09: { var value = keyValuePair.Value.AsByte(); var subOption = new NetWareAutoRetriesDelaySubOption(value); subOptions.Add(subOption); } break; case 0x0a: { var value = keyValuePair.Value.AsBoolean(); var subOption = new NetWareSupportVersion11SubOption(value); subOptions.Add(subOption); } break; case 0x0b: { var value = keyValuePair.Value.AsIpAddress(); var subOption = new NetWarePrimaryDssSubOption(value); subOptions.Add(subOption); } break; } } return(subOptions); }