/* * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | | / / | / NAME / | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TYPE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | CLASS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TTL | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | RDLENGTH | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| | / RDATA / | / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ * */ public ResourceRecordInfo ReadRecordInfo() { return(new ResourceRecordInfo( _reader.ReadQuestionQueryString(), // name (ResourceRecordType)_reader.ReadUInt16NetworkOrder(), // type (QueryClass)_reader.ReadUInt16NetworkOrder(), // class (int)_reader.ReadUInt32NetworkOrder(), // TTL - 32bit!! _reader.ReadUInt16NetworkOrder())); // RDLength }
/// <summary> /// Reads a <see cref="ResourceRecord"/> from this <see cref="DnsDatagramReader"/>. /// </summary> private ResourceRecord ReadRecordInfo(DnsDatagramReader reader) { var queryString = reader.ReadQuestionQueryString(); var type = reader.ReadUInt16NetworkOrder(); if (!_resourceRecordTypes.TryGetValue(type, out var resourceRecordType)) { resourceRecordType = new PseudoResourceRecordType( abbreviation: "Unknown - machine generated", value: type ); } var queryClass = reader.ReadUInt16NetworkOrder(); var ttl = reader.ReadUInt32NetworkOrder(); var rdLength = reader.ReadUInt16NetworkOrder(); return(new ResourceRecord( queryString, // name resourceRecordType, // type (QueryClass)queryClass, // class (int)ttl, // ttl - 32bit!! rdLength)); // RDLength }