Dns_stub_mirage.Make
val metrics :
[ `Authoritative_answers
| `Authoritative_errors
| `Decoding_errors
| `On_update
| `Queries
| `Reserved_answers
| `Resolver_answers
| `Resolver_nodata
| `Resolver_nodomain
| `Resolver_notimp
| `Resolver_queries
| `Resolver_servfail
| `Tcp_connections
| `Tcp_queries
| `Udp_queries ] ->
unit
module H : sig ... end
module Client : sig ... end
module Dns_flow : sig ... end
type t = {
client : Client.t;
reserved : Dns_server.t;
mutable server : Dns_server.t;
on_update : old:Dns_trie.t ->
?authenticated_key:[ `raw ] Domain_name.t ->
update_source:Ipaddr.t ->
Dns_trie.t ->
unit Lwt.t;
}
val query_server :
Dns_server.t ->
Dns.Packet.Question.t ->
Dns.Packet.data ->
(?additional:Dns.Name_rr_map.t ->
[> `Answer of Dns.Packet.Answer.t
| `Rcode_error of Dns.Rcode.t * Dns.Opcode.t * Dns.Packet.Answer.t option ] ->
'a) ->
'b option
val tsig_decode_sign :
Dns_server.t ->
Dns.proto ->
Dns.Packet.t ->
string ->
([> `Rcode_error of Dns.Rcode.t * Dns.Opcode.t * 'a option ] -> 'b) ->
([ `raw ] Domain_name.t option * (Dns.Packet.data -> string option), 'c)
Stdlib.result
val axfr_server :
Dns_server.t ->
Dns.proto ->
Dns.Packet.t ->
Dns.Packet.Question.t ->
string ->
([> `Rcode_error of Dns.Rcode.t * Dns.Opcode.t * 'a option ] -> string) ->
string option
val update_server :
t ->
Dns.proto ->
Ipaddr.t ->
Dns.Packet.t ->
Dns.Packet.Question.t ->
Dns.Packet.Update.t ->
string ->
([> `Rcode_error of Dns.Rcode.t * Dns.Opcode.t * 'a option ] -> string) ->
string option Lwt.t
val server :
t ->
Dns.proto ->
Ipaddr.t ->
Dns.Packet.t ->
string ->
(?additional:Dns.Name_rr_map.t ->
[> `Answer of Dns.Packet.Answer.t
| `Rcode_error of Dns.Rcode.t * Dns.Opcode.t * Dns.Packet.Answer.t option ] ->
string) ->
string option Lwt.t
val resolve :
t ->
Dns.Packet.Question.t ->
Dns.Packet.data ->
([> `Answer of Dns.Name_rr_map.t * Dns.Name_rr_map.t
| `Rcode_error of
Dns.Rcode.t
* Dns.Opcode.t
* (Dns.Name_rr_map.t * Dns.Name_rr_map.t) option ] ->
'a) ->
'b option Lwt.t
val create :
?cache_size: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