Cohttp_lwt_unix.Net
Basic satisfaction of Cohttp_lwt.Net
include Cohttp_lwt.S.Net
with module IO = Cohttp_lwt_unix__.Io
and type ctx := ctx
and type endp = Conduit.endp
module IO : sig ... end
The Io
module contains the IO implementation for cohttp-lwt-unix
.
val sexp_of_ctx : ctx -> Sexplib0.Sexp.t
val default_ctx : ctx
resolve ~ctx uri
resolves uri
into an endpoint description. This is Resolver_lwt.resolve_uri ~uri ctx.resolver
.
connect_uri ~ctx uri
starts a flow on the given uri
. The choice of the protocol (with or without encryption) is done by the scheme of the given uri
:
https
, we will extend ctx
to be able to start a TLS connection with a default TLS configuration (no authentication) on the default or user-specified port.http
, we will extend ctx
to be able to start a simple TCP/IP connection on the default or user-specified port.These extensions have the highest priority (Conduit
will try to initiate a communication with them first). By extension, we mean that the user is able to fill its own ctx
and we don't overlap resolution functions from the given ctx
.
This is resolve ~ctx uri >>= connect_endp ~ctx
.
connect_endp ~ctx endp
starts a flow to the given endp
. endp
describes address and protocol of the endpoint to connect to.
val close_in : IO.ic -> unit
val close_out : IO.oc -> unit
val init : ?ctx:Conduit_lwt_unix.ctx -> ?resolver:Resolver_lwt.t -> unit -> ctx
init ?ctx ?resolver ()
is a network context that is the same as the default_ctx
, but with either the connection handling or resolution module overridden with ctx
or resolver
respectively. This is useful to supply a Conduit_lwt_unix.resolver
with a custom source network interface, or a Resolver_lwt.t
with a different name resolution strategy (for instance to override a hostname to point it to a Unix domain socket).