Module Dns_client_lwt

Lwt_unix helper module for Dns_client. For more information see the Dns_client.Make functor.

The Dns_client is available as Dns_client_lwt after linking to dns-client.lwt in your dune file.

It initializes the RNG (using Mirage_crypto_rng_lwt.initialize ()).

module Transport : Dns_client.S with type io_addr = [ `Plaintext of Ipaddr.t * int | `Tls of Tls.Config.client * Ipaddr.t * int ] and type +'a io = 'a Lwt.t and type stack = Happy_eyeballs_lwt.t

A flow module based on non-blocking I/O on top of the Lwt_unix socket API.

include sig ... end
val transport : t -> Transport.t
val create : ?cache_size:int -> ?edns:[ `Auto | `Manual of Dns.Edns.t | `None ] -> ?nameservers:(Dns.proto * Transport.io_addr list) -> ?timeout:int64 -> Transport.stack -> t
val nameservers : t -> Dns.proto * Transport.io_addr list
val getaddrinfo : t -> 'response Dns.Rr_map.key -> 'a Domain_name.t -> ('response, [> `Msg of string ]) Stdlib.result Transport.io
val gethostbyname : t -> [ `host ] Domain_name.t -> (Ipaddr.V4.t, [> `Msg of string ]) Stdlib.result Transport.io
val gethostbyname6 : t -> [ `host ] Domain_name.t -> (Ipaddr.V6.t, [> `Msg of string ]) Stdlib.result Transport.io
val get_resource_record : t -> 'response Dns.Rr_map.key -> 'a Domain_name.t -> ('response, [> `Msg of string | `No_data of [ `raw ] Domain_name.t * Dns.Soa.t | `No_domain of [ `raw ] Domain_name.t * Dns.Soa.t ]) Stdlib.result Transport.io
val get_raw_reply : t -> 'response Dns.Rr_map.key -> 'a Domain_name.t -> (Dns.Packet.reply, [> `Msg of string | `Partial ]) Stdlib.result Transport.io