DNS::LDNS::RR(3)

πŸ’– DNS::LDNS::RR πŸ’–

okay bestie, welcome to the resource record page β€” that's DNS::LDNS::RR, living in section 3 of the manual, filed under User Contributed Perl Documentation. this is the one where we talk about resource records (RRs, the actual little units of DNS data). buckle up, it's a long one, but every single line matters, so we're doing all of it. no skimming. πŸŽ€


✨ NAME ✨

DNS::LDNS::RR β€” Resource record. that's it, that's the vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

here's the whole menu, copied exactly, don't @ me:

use DNS::LDNS ':all'

my rr = new DNS::LDNS::RR('mylabel 3600 IN A 168.10.10.10')
my rr = new DNS::LDNS::RR(
  str => 'mylabel 3600 IN A 168.10.10.10',
  default_ttl => 3600,     # optional
  origin => $origin_rdata, # optional
  prev => \$prev_rdata,    # optional
)
my rr = new DNS::LDNS::RR(
  filename => '/path/to/rr',
  default_ttl => \$ttl,     # optional
  origin => \$origin_rdata, # optional
  prev => \$prev_rdata)     # optional
my rr = new DNS::LDNS::RR(
  file => \*FILE,
  default_ttl => \$ttl,     # optional
  origin => \$origin_rdata, # optional
  prev => \$prev_rdata)     # optional
my rr = new DNS::LDNS::RR(
  type => LDNS_RR_TYPE_A,
  rdata => [new DNS::LDNS::RData(...), new DNS::LDNS::RData(...), ...],
  class => LDNS_RR_CLASS_IN, # optional
  ttl => 3600, # optional
  owner => new DNS::LDNS::RData(LDNS_RDF_TYPE_DNAME, 'mylabel'), # optional)
my rr = new DNS::LDNS::RR

rr2 = rr->clone

rr->print(\*FILE)
rr->to_string

ttl = rr->ttl
rr->set_ttl(ttl)

type = rr->type
rr->set_type(type)

class = rr->class
rr->set_class(class)

rdata = rr->owner
rr->set_owner(rdata)
str = rr->dname

count = rr->rd_count
rdata = rr->rdata(index)
rr->set_rdata(rd1, rd2, rd3, ...)
rr->push_rdata(rd1, rd2, rd3, ...)
rdata = rr->pop_rdata

rr->compare(rr2)
rr->compare_dname(rr2)
rr->compare_no_rdata(rr2)
rr->compare_ds(rr2)

hash = rr->hash_name_from_nsec3(dname)

status = rr->verify_denial(nsecs, rrsigs)
status = rr->verify_denial_nsec3(nsecs, rrsigs, packet_rcode, packet_qtype, packet_nodata)
match = rr->verify_denial_nsec3_match(nsecs, rrsigs, packet_rcode, packet_qtype, packet_nodata)

rr->nsec3_add_param_rdfs(algorithm, flags, iterations, salt)
a = rr->nsec3_algorithm
f = rr->nsec3_flags
o = rr->nsec3_optout
i = rr->nsec3_iterations
rdata = rr->nsec3_next_owner
rdata = rr->nsec3_bitmap
rdata = rr->nsec3_salt

rdata = rr->rrsig_keytag
bool = rr->rrsig_set_keytag(rdata)
rdata = rr->rrsig_signame
bool = rr->rrsig_set_signame(rdata)
rdata = rr->rrsig_sig
bool = rr->rrsig_set_sig(rdata)
rdata = rr->rrsig_algorithm
bool = rr->rrsig_set_algorithm(rdata)
rdata = rr->rrsig_inception
bool = rr->rrsig_set_inception(rdata)
rdata = rr->rrsig_expiration
bool = rr->rrsig_set_expiration(rdata)
rdata = rr->rrsig_labels
bool = rr->rrsig_set_labels(rdata)
rdata = rr->rrsig_origttl
bool = rr->rrsig_set_origttl(rdata)
key = rr->get_dnskey_for_rrsig(rrlist)

rdata = rr->dnskey_algorithm
bool = rr->dnskey_set_algorithm(rdata)
rdata = rr->dnskey_flags
bool = rr->dnskey_set_flags(rdata)
rdata = rr->dnskey_protocol
bool = rr->dnskey_set_protocol(rdata)
rdata = rr->dnskey_key
bool = rr->dnskey_set_key(rdata)
bits = rr->dnskey_key_size
tag = rr->calc_keytag
ds = rr->key_to_ds(hash)

rr->is_question

so yeah. there's a LOT going on here and every line of it is real and important β€” the constructors, the clone, the printing, the ttl/type/class getters and setters, the owner and dname stuff, the whole rdata stack party, the comparison family, the NSEC3 denial-verification crowd, the NSEC3 param readers, the RRSIG and DNSKEY accessors, and the tiny but mighty is_question. it's giving "everything everywhere all at once" and honestly? obsessed. πŸ’…


πŸ‘€ SEE ALSO πŸ‘€

go look. iykyk. πŸ”₯


πŸ’œ AUTHOR πŸ’œ

Erik Pihl Ostlyngen, <erik.ostlyngen@uninett.no> β€” king behavior, honestly. πŸ‘‘


Copyright (C) 2013 by UNINETT Norid AS

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.

bestie please actually read that license bit β€” "same terms as Perl itself" is the whole deal, and you get to pick 5.14.2 or literally any later Perl 5 you've got lying around. free software stays free, periodt. 🌈

and that's the whole page, bestie β€” no cap. 🫢 this one came to you from perl v5.42.2, dated 2026-06-11, and it's the DNS::LDNS::RR(3) manual page. now go make some resource records, you absolute icon. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from