/// <summary> /// Constructs an instance out of the version, opcode, error code, id and lease life fields. /// </summary> /// <param name="version">Version of LLQ protocol implemented.</param> /// <param name="opCode">Identifies LLQ operation.</param> /// <param name="errorCode">Identifies LLQ errors.</param> /// <param name="id">Identifier for an LLQ.</param> /// <param name="leaseLife">Requested or granted life of LLQ, in seconds.</param> public DnsOptionLongLivedQuery(ushort version, DnsLongLivedQueryOpCode opCode, DnsLongLivedQueryErrorCode errorCode, ulong id, uint leaseLife) : base(DnsOptionCode.LongLivedQuery) { Version = version; OpCode = opCode; ErrorCode = errorCode; Id = id; LeaseLife = leaseLife; }
internal static DnsOptionLongLivedQuery Read(DataSegment data) { if (data.Length != ConstDataLength) { return(null); } ushort version = data.ReadUShort(Offset.Version, Endianity.Big); DnsLongLivedQueryOpCode opCode = (DnsLongLivedQueryOpCode)data.ReadUShort(Offset.OpCode, Endianity.Big); DnsLongLivedQueryErrorCode errorCode = (DnsLongLivedQueryErrorCode)data.ReadUShort(Offset.ErrorCode, Endianity.Big); ulong id = data.ReadULong(Offset.Id, Endianity.Big); uint leaseLife = data.ReadUInt(Offset.LeaseLife, Endianity.Big); return(new DnsOptionLongLivedQuery(version, opCode, errorCode, id, leaseLife)); }