Module Tcp_socket

type error = [
| Mirage_protocols.Tcp.error
| `Exn of exn
]
type write_error = [
| Mirage_protocols.Tcp.write_error
| `Exn of exn
]
val pp_error : Stdlib.Format.formatter -> [< `Exn of exn | `Refused | `Timeout ] -> unit
val pp_write_error : Stdlib.Format.formatter -> [< `Closed | `Exn of exn | `Refused | `Timeout ] -> unit
val disconnect : 'a -> unit Lwt.t
val read : Lwt_unix.file_descr -> ([> `Data of Cstruct.t | `Eof ], [> `Exn of exn ]) Stdlib.result Lwt.t
val write : Lwt_unix.file_descr -> Cstruct.t -> (unit, [> `Closed | `Exn of exn ]) Stdlib.result Lwt.t
val writev : Lwt_unix.file_descr -> Cstruct.t list -> (unit, [> `Closed | `Exn of exn ]) Stdlib.result Lwt.t
val write_nodelay : Lwt_unix.file_descr -> Cstruct.t -> (unit, [> `Closed | `Exn of exn ]) Stdlib.result Lwt.t
val writev_nodelay : Lwt_unix.file_descr -> Cstruct.t list -> (unit, [> `Closed | `Exn of exn ]) Stdlib.result Lwt.t
val close : Lwt_unix.file_descr -> unit Lwt.t
type listener = {
process : Lwt_unix.file_descr -> unit Lwt.t;
keepalive : Mirage_protocols.Keepalive.t option;
}
val input : 'a -> listeners:'b -> 'c Lwt.t