Krikri::PluginHelpers::NsupdateMessage
NsupdateMessage - a minimal RFC2136 dynamic-DNS client (wire format + RFC2845 TSIG signing), the pieces of dnspython that community.general.nsupdate actually drives: SOA queries (zone lookup), standard queries (TTL check), and UPDATE messages with prerequisites (record-exists probes), add/delete RR operations. Pure byte plumbing + response parsing so it is unit-testable without a DNS server; the plugin executes the network I/O.
Constants
dnspython's dns.rcode.to_text table (the ones a DDNS update flow can realistically see).
Class methods
A standard query (opcode QUERY, RD set), optional TSIG in additional.
An RFC2136 UPDATE message: zone section, prerequisite RRs (class IN, "must exist" style), update RRs (add: class IN; delete: class NONE).
Decodes a name at offset in message, following compression pointers; returns {name (absolute, trailing dot), next_offset}.
Encodes a (possibly relative) dotted name. No escape sequences, no compression.
Case-insensitive DNS name equality on label sequences.
Drops the leftmost label of an absolute name (dns.name#parent).
"this RRSET exists (independent of rdata)" prerequisite.
"RRSET exists with this rdata" prerequisite.
True when name is a subdomain of (or equal to) zone.
The real module's txt_helper: make sure a TXT value carries quotes so dnspython's character-string parser sees one string.