Dns.TrieInterface to 256-way radix trie for DNS lookups. Non-standard behaviour:
val new_trie : unit -> dnstrieMake a new, empty trie.
val simple_lookup : Name.key -> dnstrie -> RR.dnsnode optionSimple lookup function: just walk the trie.
val lookup :
Name.key ->
dnstrie ->
mdns:bool ->
[> `Delegated of bool * RR.dnsnode
| `Found of bool * RR.dnsnode * RR.dnsnode
| `NXDomain of RR.dnsnode
| `NXDomainNSEC of RR.dnsnode * RR.dnsnode * RR.dnsnode
| `NoError of RR.dnsnode
| `NoErrorNSEC of RR.dnsnode * RR.dnsnode
| `Wildcard of RR.dnsnode * RR.dnsnode
| `WildcardNSEC of RR.dnsnode * RR.dnsnode * RR.dnsnode ]Look up a DNS entry in the trie, with full return.
val lookup_or_insert :
Name.key ->
dnstrie ->
?parent:dnstrie ->
(unit -> RR.dnsnode) ->
RR.dnsnodeReturn the data mapped from this key, making new data if there is none there yet.
Sort out flags for a key's node: call after adding or removing NS, SOA and KEY RRs
val iter : (RR.dnsnode -> unit) -> dnstrie -> unitIterate over all of the nodes in the trie.