(* (c) 2017, 2018 Hannes Mehnert, all rights reserved *) module type S = sig type t val resolve_external : t -> Ipaddr.t * int -> string -> (int32 * string) Lwt.t (** [resolve_external t (ip, port) data] resolves for [(ip, port)] the query [data] and returns a pair of the minimum TTL and a response. *) val primary_data : t -> Dns_trie.t (** [primary_data t] is the DNS trie of the primary for the resolver [t]. *) val update_primary_data : t -> Dns_trie.t -> unit (** [update_primary_data t data] updates the primary for the resolver [t] with the DNS trie [data]. Any 'notify's to secondaries are discarded - secondary name servers are not supported in this setup. *) val update_tls : t -> Tls.Config.server -> unit (** [update_tls t tls_config] updates the tls configuration to [tls_config]. If the resolver wasn't already listening for TLS connections it will start listening. *) end