Ejemplo n.º 1
0
        /*
         * 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
        }
Ejemplo n.º 2
0
        /// <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
        }