Dns_client_mirage.MakeSourcemodule R : Mirage_random.Smodule T : Mirage_time.Smodule M : Mirage_clock.MCLOCKmodule P : Mirage_clock.PCLOCKmodule S : Tcpip.Stack.V4V6include 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.ionameserver_of_string authenticators str returns a Transport.io_addr from the given string. The format is:
tcp:<ipaddr>(:port)? for a simple nameserver and we will communicate with it via the TCP/IP protocoltls:<ipaddr>(:port)?(!authenticator)? for a nameserver and we will communicate with it via the TCP/IP protocol plus the TLS encrypted layer. The user can verify the nameserver via an authenticator (see X509.Authenticator.of_string for the format of it). By default, Ca_certs_nss.authenticator is used.connect ?nameservers ?timeout stack creates a DNS entity which is able to resolve domain-name. It expects few optional arguments:
nameservers a list of nameservers used to resolve domain-namestimeout (in nanoseconds), passed to create