logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ldns_rr, ldns_rr_class, ldns_rr_type, ldns_rr_compress, ldns_rr_list - types representing dns resource

Author

       The ldns team at NLnet Labs.

Description

ldns_rr
              Resource Record

              This is the basic DNS element that contains actual data

              From RFC1035:
              <pre>
              3.2.1. Format

              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.
              </pre>

              The actual amount and type of rdata fields depend on the RR type of the
              RR, and can be found by using \ref ldns_rr_descriptor functions.
              struct ldns_struct_rr
              {
                   Ownername,uncompressed:
                   ldns_rdf  *_owner;
                   Timetolive:
                   uint32_t  _ttl;
                   Numberofdatafields:
                   size_t            _rd_count;
                   thetypeoftheRR.A,MXetc.:
                   ldns_rr_type   _rr_type;
                   Classoftheresourcerecord.:
                   ldns_rr_class  _rr_class;
                   /* everything in the rdata is in network order */
                   Thearrayofrdata's:
                   ldns_rdf   **_rdata_fields;
                   /**  question rr [it would be nicer if thous is after _rd_count]
                         ABI change: Fix this in next major release
                    */
                   bool      _rr_question;
              };
              typedef struct ldns_struct_rr ldns_rr;

       ldns_rr_class
               The different RR classes.
              enum ldns_enum_rr_class
              {
                   theInternet:
                   LDNS_RR_CLASS_IN    = 1,
                   Chaosclass:
                   LDNS_RR_CLASS_CH    = 3,
                   Hesiod(Dyer87):
                   LDNS_RR_CLASS_HS    = 4,
                  Noneclass,dynamicupdate:
                  LDNS_RR_CLASS_NONE      = 254,
                   Anyclass:
                   LDNS_RR_CLASS_ANY   = 255,

                   LDNS_RR_CLASS_FIRST     = 0,
                   LDNS_RR_CLASS_LAST      = 65535,
                   LDNS_RR_CLASS_COUNT     = LDNS_RR_CLASS_LAST - LDNS_RR_CLASS_FIRST + 1
              };
              typedef enum ldns_enum_rr_class ldns_rr_class;

       ldns_rr_type
              The different RR types.
              enum ldns_enum_rr_type
              {
                   ahostaddress:
                   LDNS_RR_TYPE_A = 1,
                   anauthoritativenameserver:
                   LDNS_RR_TYPE_NS = 2,
                   amaildestination(Obsolete-useMX):
                   LDNS_RR_TYPE_MD = 3,
                   amailforwarder(Obsolete-useMX):
                   LDNS_RR_TYPE_MF = 4,
                   thecanonicalnameforanalias:
                   LDNS_RR_TYPE_CNAME = 5,
                   marksthestartofazoneofauthority:
                   LDNS_RR_TYPE_SOA = 6,
                   amailboxdomainname(EXPERIMENTAL):
                   LDNS_RR_TYPE_MB = 7,
                   amailgroupmember(EXPERIMENTAL):
                   LDNS_RR_TYPE_MG = 8,
                   amailrenamedomainname(EXPERIMENTAL):
                   LDNS_RR_TYPE_MR = 9,
                   anullRR(EXPERIMENTAL):
                   LDNS_RR_TYPE_NULL = 10,
                   awellknownservicedescription:
                   LDNS_RR_TYPE_WKS = 11,
                   adomainnamepointer:
                   LDNS_RR_TYPE_PTR = 12,
                   hostinformation:
                   LDNS_RR_TYPE_HINFO = 13,
                   mailboxormaillistinformation:
                   LDNS_RR_TYPE_MINFO = 14,
                   mailexchange:
                   LDNS_RR_TYPE_MX = 15,
                   textstrings:
                   LDNS_RR_TYPE_TXT = 16,
                   RFC1183:
                   LDNS_RR_TYPE_RP = 17,
                   RFC1183:
                   LDNS_RR_TYPE_AFSDB = 18,
                   RFC1183:
                   LDNS_RR_TYPE_X25 = 19,
                   RFC1183:
                   LDNS_RR_TYPE_ISDN = 20,
                   RFC1183:
                   LDNS_RR_TYPE_RT = 21,
                   RFC1706:
                   LDNS_RR_TYPE_NSAP = 22,
                   RFC1348:
                   LDNS_RR_TYPE_NSAP_PTR = 23,
                   2535typecode:
                   LDNS_RR_TYPE_SIG = 24,
                   2535typecode:
                   LDNS_RR_TYPE_KEY = 25,
                   RFC2163:
                   LDNS_RR_TYPE_PX = 26,
                   RFC1712:
                   LDNS_RR_TYPE_GPOS = 27,
                   ipv6address:
                   LDNS_RR_TYPE_AAAA = 28,
                   LOCrecordRFC1876:
                   LDNS_RR_TYPE_LOC = 29,
                   2535typecode:
                   LDNS_RR_TYPE_NXT = 30,
                   draft-ietf-nimrod-dns-01.txt:
                   LDNS_RR_TYPE_EID = 31,
                   draft-ietf-nimrod-dns-01.txt:
                   LDNS_RR_TYPE_NIMLOC = 32,
                   SRVrecordRFC2782:
                   LDNS_RR_TYPE_SRV = 33,
                   http://www.jhsoft.com/rfc/af-saa-0069.000.rtf:
                   LDNS_RR_TYPE_ATMA = 34,
                   RFC2915:
                   LDNS_RR_TYPE_NAPTR = 35,
                   RFC2230:
                   LDNS_RR_TYPE_KX = 36,
                   RFC2538:
                   LDNS_RR_TYPE_CERT = 37,
                   RFC2874:
                   LDNS_RR_TYPE_A6 = 38,
                   RFC2672:
                   LDNS_RR_TYPE_DNAME = 39,
                   dnsind-kitchen-sink-02.txt:
                   LDNS_RR_TYPE_SINK = 40,
                   OPTrecordRFC6891:
                   LDNS_RR_TYPE_OPT = 41,
                   RFC3123:
                   LDNS_RR_TYPE_APL = 42,
                   RFC4034,RFC3658:
                   LDNS_RR_TYPE_DS = 43,
                   SSHKeyFingerprint:
                   LDNS_RR_TYPE_SSHFP = 44, /* RFC 4255 */
                   IPsecKey:
                   LDNS_RR_TYPE_IPSECKEY = 45, /* RFC 4025 */
                   DNSSEC:
                   LDNS_RR_TYPE_RRSIG = 46, /* RFC 4034 */
                   LDNS_RR_TYPE_NSEC = 47, /* RFC 4034 */
                   LDNS_RR_TYPE_DNSKEY = 48, /* RFC 4034 */

                   LDNS_RR_TYPE_DHCID = 49, /* RFC 4701 */
                   /* NSEC3 */
                   LDNS_RR_TYPE_NSEC3 = 50, /* RFC 5155 */
                   LDNS_RR_TYPE_NSEC3PARAM = 51, /* RFC 5155 */
                   LDNS_RR_TYPE_NSEC3PARAMS = 51,
                   LDNS_RR_TYPE_TLSA = 52, /* RFC 6698 */
                   LDNS_RR_TYPE_SMIMEA = 53, /* RFC 8162 */

                   LDNS_RR_TYPE_HIP = 55, /* RFC 5205 */

                   draft-reid-dnsext-zs:
                   LDNS_RR_TYPE_NINFO = 56,
                   draft-reid-dnsext-rkey:
                   LDNS_RR_TYPE_RKEY = 57,
                      draft-ietf-dnsop-trust-history:
                      LDNS_RR_TYPE_TALINK = 58,
                   LDNS_RR_TYPE_CDS = 59, /* RFC 7344 */
                   LDNS_RR_TYPE_CDNSKEY = 60, /* RFC 7344 */
                   LDNS_RR_TYPE_OPENPGPKEY = 61, /* RFC 7929 */
                   LDNS_RR_TYPE_CSYNC = 62, /* RFC 7477 */
                   LDNS_RR_TYPE_ZONEMD = 63, /* RFC 8976 */
                   LDNS_RR_TYPE_SVCB = 64, /* RFC 9460 */
                   LDNS_RR_TYPE_HTTPS = 65, /* RFC 9460 */

                   LDNS_RR_TYPE_SPF = 99, /* RFC 4408 */

                   LDNS_RR_TYPE_UINFO = 100,
                   LDNS_RR_TYPE_UID = 101,
                   LDNS_RR_TYPE_GID = 102,
                   LDNS_RR_TYPE_UNSPEC = 103,

                   LDNS_RR_TYPE_NID = 104, /* RFC 6742 */
                   LDNS_RR_TYPE_L32 = 105, /* RFC 6742 */
                   LDNS_RR_TYPE_L64 = 106, /* RFC 6742 */
                   LDNS_RR_TYPE_LP = 107, /* RFC 6742 */

                   LDNS_RR_TYPE_EUI48 = 108, /* RFC 7043 */
                   LDNS_RR_TYPE_EUI64 = 109, /* RFC 7043 */

                   LDNS_RR_TYPE_NXNAME = 128, /* draft-ietf-dnsop-compact-denial-of-existence */

                   LDNS_RR_TYPE_TKEY = 249, /* RFC 2930 */
                   LDNS_RR_TYPE_TSIG = 250,
                   LDNS_RR_TYPE_IXFR = 251,
                   LDNS_RR_TYPE_AXFR = 252,
                   Arequestformailbox-relatedrecords(MB,MGorMR):
                   LDNS_RR_TYPE_MAILB = 253,
                   ArequestformailagentRRs(Obsolete-seeMX):
                   LDNS_RR_TYPE_MAILA = 254,
                   anytype(wildcard):
                   LDNS_RR_TYPE_ANY = 255,
                   LDNS_RR_TYPE_URI = 256, /* RFC 7553 */
                   LDNS_RR_TYPE_CAA = 257, /* RFC 6844 */
                   LDNS_RR_TYPE_AVC = 258, /* Cisco's DNS-AS RR, see www.dns-as.org */
                   LDNS_RR_TYPE_DOA = 259, /* draft-durand-doa-over-dns */

                   RFC8777*:
                   LDNS_RR_TYPE_AMTRELAY = 260,

                   RFC9606:
                   LDNS_RR_TYPE_RESINFO = 261,

                   https://iana.org/assignments/dns-parameters/WALLET/wallet-completed-template:
                   LDNS_RR_TYPE_WALLET = 262,

                   DNSSECTrustAuthorities:
                   LDNS_RR_TYPE_TA = 32768,
                   /* RFC 4431, 5074, DNSSEC Lookaside Validation */
                   LDNS_RR_TYPE_DLV = 32769,

                   /* type codes from nsec3 experimental phase
                   LDNS_RR_TYPE_NSEC3 = 65324,
                   LDNS_RR_TYPE_NSEC3PARAMS = 65325, */
                   LDNS_RR_TYPE_FIRST = 0,
                   LDNS_RR_TYPE_LAST  = 65535,
                   LDNS_RR_TYPE_COUNT = LDNS_RR_TYPE_LAST - LDNS_RR_TYPE_FIRST + 1
              };
              typedef enum ldns_enum_rr_type ldns_rr_type;

       ldns_rr_compress
               Used to specify whether compression is allowed.
              enum ldns_enum_rr_compress
              {
                   compressionisallowed:
                   LDNS_RR_COMPRESS,
                   LDNS_RR_NO_COMPRESS
              };
              typedef enum ldns_enum_rr_compress ldns_rr_compress;

       ldns_rr_list
              List or Set of Resource Records

              Contains a list of rr's <br>
              No official RFC-like checks are made
              struct ldns_struct_rr_list
              {
                   size_t _rr_count;
                   size_t _rr_capacity;
                   ldns_rr **_rrs;
              };
              typedef struct ldns_struct_rr_list ldns_rr_list;

Name

       ldns_rr,  ldns_rr_class,  ldns_rr_type,  ldns_rr_compress, ldns_rr_list - types representing dns resource
       records

Remarks

       This manpage was automatically generated from the ldns source code.

                                                   30 May 2006                                           ldns(3)

Reporting Bugs

       Please report bugs to dns-team@nlnetlabs.nl or on GitHub at https://github.com/NLnetLabs/ldns/issues

See Also

ldns_rr_new,  ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print,
       ldns_rr_set_owner,   ldns_rr_set_ttl,    ldns_rr_set_type,    ldns_rr_set_rd_count,    ldns_rr_set_class,
       ldns_rr_set_rdf,   ldns_rr_push_rdf,   ldns_rr_pop_rdf,   ldns_rr_rdf,  ldns_rr_owner,  ldns_rr_rd_count,
       ldns_rr_ttl,  ldns_rr_get_class,  ldns_rr_list_rr_count,   ldns_rr_list_set_rr_count,   ldns_rr_list_new,
       ldns_rr_list_free,    ldns_rr_list_cat,    ldns_rr_list_push_rr,    ldns_rr_list_pop_rr,   ldns_is_rrset,
       ldns_rr_set_push_rr,     ldns_rr_set_pop_rr,     ldns_get_rr_class_by_name,     ldns_get_rr_type_by_name,
       ldns_rr_list_clone,  ldns_rr_list_sort,  ldns_rr_compare,  ldns_rr_compare_ds, ldns_rr_uncompressed_size,
       ldns_rr2canonical, ldns_rr_label_count, ldns_is_rrset, ldns_rr_descriptor, ldns_rr_descript.  And perldocNet::DNS, RFC1034, RFC1035, RFC4033, RFC4034  and RFC4035.

Synopsis

       #include <stdint.h>
       #include <stdbool.h>

       #include <ldns/ldns.h>

See Also