Dns_client_lwtSourceLwt_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 = unitA flow module based on non-blocking I/O on top of the Lwt_unix socket API.
include sig ... endval create :
?size:int ->
?edns:[ `Auto | `Manual of Dns.Edns.t | `None ] ->
?nameservers:(Dns.proto * Transport.io_addr list) ->
?timeout:int64 ->
Transport.stack ->
tval getaddrinfo :
t ->
'response Dns.Rr_map.key ->
'a Domain_name.t ->
('response, [> `Msg of string ]) result Transport.ioval gethostbyname :
t ->
[ `host ] Domain_name.t ->
(Ipaddr.V4.t, [> `Msg of string ]) result Transport.ioval gethostbyname6 :
t ->
[ `host ] Domain_name.t ->
(Ipaddr.V6.t, [> `Msg of string ]) result Transport.ioval 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 ])
result
Transport.ioval get_raw_reply :
t ->
'response Dns.Rr_map.key ->
'a Domain_name.t ->
(Dns.Packet.reply, [> `Msg of string | `Partial ]) result Transport.io