Dns_stub_mirage.Makemodule H : sig ... endval create :
?add_reserved:bool ->
?record_clients:bool ->
?cache_size:int ->
?udp:bool ->
?tcp:bool ->
?port:int ->
?tls:Tls.Config.server ->
?tls_port:int ->
?edns:[ `Auto | `Manual of Dns.Edns.t | `None ] ->
?nameservers:string list ->
?timeout:int64 ->
?on_update:
(old:Dns_trie.t ->
?authenticated_key:[ `raw ] Domain_name.t ->
update_source:Ipaddr.t ->
Dns_trie.t ->
unit Lwt.t) ->
Dns_server.Primary.s ->
happy_eyeballs:H.t ->
S.t ->
t Lwt.tcreate ~add_reserved ~record_clients ~cache_size ~edns ~nameservers ~timeout ~on_update server ~happy_eyeballs stack registers a stub resolver on the provided protocols udp, tcp, tls using port for udp and tcp (defaults to 53), tls_port for tls (defaults to 853) using the resolver configuration. The timer is in milliseconds and defaults to 500 milliseconds.
If record_clients is true (the default), the metrics of the resolver will include the amount of clients. This keeps a set of Ipaddr.t of all clients around, which may use some memory if it is a public resolver.
The add_reserved is by default true, and adds reserved zones (from RFC 6303, 6761, 6762) to the primary server (see Dns_resolver_root.reserved_zones).
include Dns_resolver_mirage_shared.S with type t := tval resolve_external :
t ->
(Ipaddr.t * int) ->
string ->
(int32 * string) Lwt.tresolve_external t (ip, port) data resolves for (ip, port) the query data and returns a pair of the minimum TTL and a response.
val primary_data : t -> Dns_trie.tprimary_data t is the DNS trie of the primary for the resolver t.
val update_primary_data : t -> Dns_trie.t -> unitupdate_primary_data t data updates the primary for the resolver t with the DNS trie data. Any 'notify's to secondaries are discarded - secondary name servers are not supported in this setup.
val update_tls : t -> Tls.Config.server -> unitupdate_tls t tls_config updates the tls configuration to tls_config. If the resolver wasn't already listening for TLS connections it will start listening.
val queries : t -> Dns_resolver_mirage_shared.query_info Lwt_condition.tqueries t returns the stream of resolved DNS queries and their replies.