package dns-stub

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Dns_stub_mirage.MakeSource

Parameters

Signature

Sourcetype t
module H : sig ... end
Sourceval 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.t

create ~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 := t
Sourceval resolve_external : t -> (Ipaddr.t * int) -> string -> (int32 * string) Lwt.t
Sourceval primary_data : t -> Dns_trie.t
Sourceval update_primary_data : t -> Dns_trie.t -> unit
Sourceval update_tls : t -> Tls.Config.server -> unit
Sourceval queries : t -> Dns_resolver_mirage_shared.query_info Lwt_condition.t