ldns(3)
π ldns β data structures (from the ldns(3) manual) π
okay bestie, sit down, hydrate, because we're about to get into the data structures of ldns, the DNS library. this is the ldns(3) page, library functions manual, and yes it's giving "I read the RFCs for fun" energy. π¦
β¨ NAME β¨
ldns_dnssec_zone, ldns_dnssec_name, ldns_dnssec_rrs, ldns_dnssec_rrsets β data structures
β¨ SYNOPSIS β¨
#include <stdint.h>
#include <stdbool.h>
#include <ldns/ldns.h>
ldns_dnssec_zone();
β¨ DESCRIPTION β¨
ldns_dnssec_zone()
that's it. that's the function. iconic, honestly. π
ldns_dnssec_name π
a structure holding all the resource records for one domain name β including the derived NSEC3, if there is one. yes, if present, we don't manifest.
struct ldns_struct_dnssec_name
{
/**
* pointer to a dname containing the name.
* Usually points to the owner name of the first RR of the
first RRset
*/
ldns_rdf *name;
/**
* Usually, the name is a pointer to the owner name of the first rr for
* this name, but sometimes there is no actual data to point to,
* for instance in
* names representing empty nonterminals. If so, set name_alloced to true to
* indicate that this data must also be freed when the name is freed
*/
bool name_alloced;
/**
* The rrsets for this name
*/
ldns_dnssec_rrsets *rrsets;
/**
* NSEC pointing to the next name (or NSEC3 pointing to the
next NSEC3)
*/
ldns_rr *nsec;
/**
* signatures for the NSEC record
*/
ldns_dnssec_rrs *nsec_signatures;
/**
* Unlike what the name is_glue suggests, this field is set to true by
* ldns_dnssec_zone_mark_glue() or ldns_dnssec_zone_mark_and_get_glue()
* when the name, this dnssec_name struct represents, is occluded.
* Names that contain other occluded rrsets and records with glue on
* the delegation point will NOT have this bool set to true.
* This field should NOT be read directly, but only via the
* ldns_dnssec_name_is_glue() function!
*/
bool is_glue;
/**
* pointer to store the hashed name (only used when in an NSEC3 zone
*/
ldns_rdf *hashed_name;
};
typedef struct ldns_struct_dnssec_name ldns_dnssec_name;
π¨ bestie listen: thatis_gluefield? do NOT read it directly. only through theldns_dnssec_name_is_glue()function. the name is a little misleading and the comment literally says so, so we respect it. no cap.
ldns_dnssec_rrs πΈ
a singly linked list of rrs. simple, clean, linked-list behavior.
struct ldns_struct_dnssec_rrs
{
ldns_rr *rr;
ldns_dnssec_rrs *next;
};
typedef struct ldns_struct_dnssec_rrs ldns_dnssec_rrs;
ldns_dnssec_rrsets π§
a singly linked list of RRsets. now with types and signatures, because we're fancy.
struct ldns_struct_dnssec_rrsets
{
ldns_dnssec_rrs *rrs;
ldns_rr_type type;
ldns_dnssec_rrs *signatures;
ldns_dnssec_rrsets *next;
};
typedef struct ldns_struct_dnssec_rrsets ldns_dnssec_rrsets;
β¨ AUTHOR β¨
The ldns team at NLnet Labs. absolute legends, we stan. π
β¨ REPORTING BUGS β¨
found a bug? do NOT suffer in silence, bestie. report it to dns-team@nlnetlabs.nl or on GitHub at https://github.com/NLnetLabs/ldns/issues π«Ά
β¨ COPYRIGHT β¨
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. yeah, the all-caps is doing a lot of emotional work there and it means it. π
β¨ SEE ALSO β¨
ldns_dnssec_zone_newldns_dnssec_name_newldns_dnssec_rrs_newldns_dnssec_rrsets_new
And perldoc Net::DNS, RFC1034, RFC1035, RFC4033, RFC4034 and RFC4035. π
β¨ REMARKS β¨
This manpage was automatically generated from the ldns source code. so if it sounds a little stiff in places, blame the generator, not the vibes. π
that's the whole page, bestie β ldns(3), 30 May 2006, from the ldns(3) manual, signed off with love from your favorite Unix gremlin π
π¦ where this page comes from
- alpine 3.22: ldns-doc 1.8.4-r0 Β· BSD-3-Clause
- alpine 3.23: ldns-doc 1.8.4-r1 Β· BSD-3-Clause
- alpine 3.24: ldns-doc 1.8.4-r1 Β· BSD-3-Clause
- arch rolling: ldns 1.9.2-1 Β· custom:BSD
- debian trixie: libldns-dev 1.8.4-2+b1
- fedora 43: ldns-devel 1.8.4-8.fc43 Β· BSD-3-Clause
- fedora 43: ldns-devel 1.8.4-8.fc43 Β· BSD-3-Clause
- fedora 43: ldns-devel 1.9.2-1.fc43 Β· BSD-3-Clause
- fedora 43: ldns-devel 1.9.2-1.fc43 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.0-2.fc44 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.0-2.fc44 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.2-1.fc44 Β· BSD-3-Clause
- fedora 44: ldns-devel 1.9.2-1.fc44 Β· BSD-3-Clause
- nixos 26.05: ldns 1.9.2
- nixpkgs unstable: ldns 1.9.2
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- opensuse-leap 16.0: ldns-devel 1.8.4-160000.3.1 Β· BSD-3-Clause
- ubuntu questing: libldns-dev 1.8.4-2build1
- ubuntu resolute: libldns-dev 1.8.4-2build3
- ubuntu stonking: libldns-dev 1.9.2-1ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms