type address = Config.Address.t
A callback called per message, which permits recording and analysis. If an address is unknown (e.g. it is selected by the kernel when routing the packets) then the corresponding argument will be omitted
val create : ?local_names_cb:( Dns.Packet.question -> Dns.Packet.rr list option Lwt.t ) -> gen_transaction_id:( int -> int ) -> ?message_cb:message_cb -> Config.t -> clock -> t Lwt.t
Construct a resolver given some configuration
Process a query by first checking whether the name can be satisfied locally via the
local_names_cb and failing that, sending it to upstream servers according to the resolver configuration. The call will block forever if no server with a timeout is chosen; the client should be prepared to timeout and cancel the thread.