29 lines
1.3 KiB
OCaml
29 lines
1.3 KiB
OCaml
|
|
(* (c) 2025 Hannes Mehnert, all rights reserved *)
|
||
|
|
|
||
|
|
module Make (S : Tcpip.Stack.V4V6) : sig
|
||
|
|
type t
|
||
|
|
|
||
|
|
module H : sig
|
||
|
|
include Happy_eyeballs_mirage.S with type stack = S.t and type flow = S.TCP.flow
|
||
|
|
val connect_device : ?aaaa_timeout:int64 -> ?connect_delay:int64 ->
|
||
|
|
?connect_timeout:int64 -> ?resolve_timeout:int64 -> ?resolve_retries:int ->
|
||
|
|
?timer_interval:int64 -> ?getaddrinfo:getaddrinfo -> stack -> t Lwt.t
|
||
|
|
end
|
||
|
|
|
||
|
|
val create : ?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 ~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.*)
|
||
|
|
|
||
|
|
include Dns_resolver_mirage_shared.S with type t := t
|
||
|
|
end
|