Library and tools for creating forwarding DNS servers
type t = {
zones : Domain.Set.t;(*

use this server for these specific domains

address : Address.t;
timeout_ms : int option;(*

a specific timeout to use for this server in milliseconds

order : int;(*

lower means earlier


A single upstream DNS server. If zones = [] then the server can handle all queries; otherwise zones is a list of domains that this server should be preferentially queried for. For example if an organisation has a VPN and a special DNS server for the domain `mirage.io` it may want to only send queries for `foo.mirage.io` to this server and avoid leaking internal names by sending queries to public server.

include Comparable with type t := t
val compare : t -> t -> int
module Set : Set.S with type elt = t
module Map : Map.S with type key = t