ldns(3)

πŸ“¦
version 1.9.2 Β· 2 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– ldns(3) β€” the rdata field descriptor page πŸ’–

okay bestie, welcome to ldns(3) from the Library Functions Manual. this one is all about rdata field descriptors and honestly? it's giving "the blueprint of every RR type ever". grab a snack πŸ“


✨ NAME ✨

ldns_rr_descriptor, ldns_rr_descript, ldns_rr_descriptor_minimum, ldns_rr_descriptor_maximum, ldns_rr_descriptor_field_type β€” rdata field descriptors. that's the whole vibe. πŸŽ€


🌸 SYNOPSIS 🌸

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

#include <ldns/ldns.h>

const ldns_rr_descriptor* ldns_rr_descript(uint16_t type);

size_t ldns_rr_descriptor_minimum(const ldns_rr_descriptor *descriptor);

size_t ldns_rr_descriptor_maximum(const ldns_rr_descriptor *descriptor);

ldns_rdf_type ldns_rr_descriptor_field_type(const ldns_rr_descriptor
*descriptor, size_t field);

like… look at those signatures. so clean. so crisp. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

ldns_rr_descriptor

bestie this struct is literally the entire encyclopedia of resource record types. it holds all information about resource record types.

for every single rr type, it contains the rdata fields that are defined. no cap. here it is, verbatim, don't touch a single character:

struct ldns_struct_rr_descriptor
{
     Type of the RR that is described here:
     ldns_rr_type    _type;
     Textual name of the RR type.:
     const char *_name;
     Minimum number of rdata fields in the RRs of this type.:
     uint8_t     _minimum;
     Maximum number of rdata fields in the RRs of this type.:
     uint8_t     _maximum;
     Wireformat specification for the rr, i.e. the types of rdata
fields in their respective order.:
     const ldns_rdf_type *_wireformat;
     Special rdf types:
     ldns_rdf_type _variable;
     Specifies whether compression can be used for dnames in this
RR type.:
     ldns_rr_compress _compress;
     The number of DNAMEs in the _wireformat string, for
parsing.:
     uint8_t _dname_count;
};
typedef struct ldns_struct_rr_descriptor ldns_rr_descriptor;

okay so quick field tour because this deserves one πŸ‘‘

  • _type β€” the type of the RR that is described here, type ldns_rr_type
  • _name β€” the textual name of the RR type, type const char *
  • _minimum β€” minimum number of rdata fields in the RRs of this type, type uint8_t
  • _maximum β€” maximum number of rdata fields in the RRs of this type, type uint8_t
  • _wireformat β€” the wireformat specification for the rr, aka the types of rdata fields in their respective order, type const ldns_rdf_type *
  • _variable β€” special rdf types, type ldns_rdf_type
  • _compress β€” specifies whether compression can be used for dnames in this RR type, type ldns_rr_compress
  • _dname_count β€” the number of DNAMEs in the _wireformat string, for parsing, type uint8_t

and then the typedef, because we love a glow-up: typedef struct ldns_struct_rr_descriptor ldns_rr_descriptor; 🫢

ldns_rr_descript()

returns the resource record descriptor for the given rr type. it's the lookup girlie.

  • type β€” the type value of the rr type
  • Returns the ldns_rr_descriptor for this type

ldns_rr_descriptor_minimum()

returns the minimum number of rdata fields of the rr type this descriptor describes. the floor. the bare minimum. respect it. πŸ™ˆ

  • descriptor β€” for an rr type
  • Returns the minimum number of rdata fields

ldns_rr_descriptor_maximum()

returns the maximum number of rdata fields of the rr type this descriptor describes. the ceiling. main character energy fr fr.

  • descriptor β€” for an rr type
  • Returns the maximum number of rdata fields

ldns_rr_descriptor_field_type()

returns the rdf type for the given rdata field number of the rr type for the given descriptor. you point at a field, it tells you what kind of rdf it is. iconic behavior honestly.

  • descriptor β€” for an rr type
  • field β€” the field number
  • Returns the rdf type for the field

πŸ‘‘ AUTHOR πŸ‘‘

The ldns team at NLnet Labs. absolute legends, no notes. πŸ’œ


πŸ’€ REPORTING BUGS πŸ’€

found a bug? bestie don't suffer in silence 😭 please report bugs to dns-team@nlnetlabs.nl or on GitHub at https://github.com/NLnetLabs/ldns/issues.

like, actually report them though. they wanna know. it's not a vibe to hoard bugs. πŸ›

Copyright (c) 2004 - 2006 NLnet Labs.

Licensed under the BSD License. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. that's the legal equivalent of "we are not responsible for what happens next" πŸ’… so read it and know it.


⭐ SEE ALSO ⭐

ldns_rr, ldns_rdf. And perldoc Net::DNS, RFC1034, RFC1035, RFC4033, RFC4034 and RFC4035. the whole reading list, bestie, go off. πŸ“š


🧚 REMARKS 🧚

This manpage was automatically generated from the ldns source code. so if a sentence reads a little robot-y, that's why. it's not her fault, she was born in a build script. πŸŽ€


okay that's the whole page! it came from ldns(3), dated 30 May 2006 β€” yes she's an elder but she still slays. go forth and describe your rdata fields. periodt. πŸ’–βœ¨πŸ¦‹