Module Client.Transport

type 'a io = 'a Lwt.t
type io_addr = [
  1. | `Plaintext of Ipaddr.t * int
  2. | `Tls of Tls.Config.client * Ipaddr.t * int
]
type stack = S.t * H.t
val create : ?nameservers:(Dns.proto * io_addr list) -> timeout:int64 -> stack -> t
val nameservers : t -> Dns.proto * io_addr list
val rng : int -> string
val clock : unit -> int64
val connect : t -> (Dns.proto * context, [> `Msg of string ]) Stdlib.result io
val send_recv : context -> string -> (string, [> `Msg of string ]) Stdlib.result io
val close : context -> unit io
val bind : 'a io -> ('a -> 'b io) -> 'b io
val lift : 'a -> 'a io
val happy_eyeballs : t -> happy_eyeballs