DNS.Message.Record (DNS v0.4.1)

View Source

Record is a struct that represents a DNS resource record.

All RRs have the same top level format shown below:

                                      1  1  1  1  1  1
        0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                                               |
      /                                               /
      /                      NAME                     /
      |                                               |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                      TYPE                     |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                     CLASS                     |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                      TTL                      |
      |                                               |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                   RDLENGTH                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
      /                     RDATA                     /
      /                                               /
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

NAME an owner name, i.e., the name of the node to which this

              resource record pertains.

TYPE two octets containing one of the RR TYPE codes.

CLASS two octets containing one of the RR CLASS codes.

TTL a 32 bit signed integer that specifies the time interval

              that the resource record may be cached before the source
              of the information should again be consulted.  Zero
              values are interpreted to mean that the RR can only be
              used for the transaction in progress, and should not be
              cached.  For example, SOA records are always distributed
              with a zero TTL to prohibit caching.  Zero values can
              also be used for extremely volatile data.

RDLENGTH an unsigned 16 bit integer that specifies the length in

              octets of the RDATA field.

RDATA a variable length string of octets that describes the

              resource.  The format of this information varies
              according to the TYPE and CLASS of the resource record.

Summary

Types

t()

@type t() :: %DNS.Message.Record{
  class: DNS.Class.t(),
  data: DNS.Message.Record.Data.t(),
  name: DNS.Message.Domain.t(),
  rdlength: 0..65535,
  ttl: 0..4_294_967_295,
  type: DNS.ResourceRecordType.t()
}

Functions

from_iodata(buffer, message \\ <<>>)

list_from_message(count, message, offset)

new(name, type, class, ttl, data)