package dns
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=8f3ec95acf14f574219b5440a689eae1acc2a49cb1d8a066f9b23a7ac68f44f0
sha512=7bf2d099919a410f270d157a04a8d2e1c499269cca868e19a80396cdfc84a9b844c353267cf9183f585bb9b975445b8e2d0a6dd64d85b8de19e7752ec495cbe9
doc/dns.cache/Dns_cache/index.html
Module Dns_cache
Source
DNS cache - a least recently used cache of DNS responses
This data structure allows to insert and retrieve entries into a least recently used data structure. An `Entry
weights the cardinality of the resource record map, all other entries have a weight of 1.
The time to live is preserved, and when it is exceeded the entry is no longer returned.
The variant of the rank in the cache.
The type of a DNS cache.
empty maximum_size
is an empty DNS cache with the maximum size as capacity.
type 'a entry = [
| `Entry of 'a
| `No_data of [ `raw ] Domain_name.t * Dns.Soa.t
| `No_domain of [ `raw ] Domain_name.t * Dns.Soa.t
| `Serv_fail of [ `raw ] Domain_name.t * Dns.Soa.t
]
The polymorphic variant of an entry: a resource record, or no data, no domain, or a server failure.
pp_entry ppf entry
pretty-prints entry
on ppf
.
val get :
t ->
int64 ->
[ `raw ] Domain_name.t ->
'a Dns.Rr_map.key ->
t * ('a entry * rank, [ `Cache_miss | `Cache_drop ]) result
get cache timestamp type name
retrieves the query type, name
from the cache
using timestamp
. If the time to live is exceeded, a `Cache_drop
is returned. If there is no entry in the cache, a `Cache_miss
is returned.
val get_or_cname :
t ->
int64 ->
[ `raw ] Domain_name.t ->
'a Dns.Rr_map.key ->
t
* ([ 'a entry | `Alias of int32 * [ `raw ] Domain_name.t ] * rank,
[ `Cache_miss | `Cache_drop ])
result
get_or_cname cache timestamp type name
is the same as get
, but if a `Cache_miss
is encountered, a lookup for an alias (CNAME) is done.
val get_any :
t ->
int64 ->
[ `raw ] Domain_name.t ->
t
* ([ `Entries of Dns.Rr_map.t
| `No_domain of [ `raw ] Domain_name.t * Dns.Soa.t ]
* rank,
[ `Cache_miss | `Cache_drop ])
result
get_any cache timestamp name
retrieves all resource records for name
in cache
.
val get_nsec3 :
t ->
int64 ->
[ `raw ] Domain_name.t ->
t
* (([ `raw ] Domain_name.t * Dns.Nsec3.t) list,
[ `Cache_miss | `Cache_drop ])
result
get_nsec3 cache timestamp name
retrieves all nsec3 resource records for the zone name
.
set cache timestamp type name rank value
attempts to insert type, name, value
into the cache
using the timestamp
and rank
. If an entry already exists with a higher rank
, the cache
is unchanged.