# Module Rpc_transport

    module Rpc_transport: sig .. end

Low-level RPC transporters

    type 't result = [ `Error of exn | `Ok of 't ]

    type 't result_eof = [ `End_of_file | `Error of exn | `Ok of 't ]

    type sockaddr = [ `Implied | `Sockaddr of Unix.sockaddr ]

    val string_of_sockaddr : sockaddr -> string

Convert to string, for debugging purposes

    exception Error of string

Passed back as ``Error`. Such errors are fatal.

Note errors on stream connections: These are normally not recoverable. One should close the connection and open a new one.

    type in_rule = [ `Accept | `Deny | `Drop | `Reject | `Reject_with of Rpc.server_error ]

    type in_record = [ `Accept of Rpc_packer.packed_value
           | `Deny
           | `Drop
           | `Reject of Rpc_packer.packed_value
           | `Reject_with of Rpc_packer.packed_value * Rpc.server_error ]

    class type rpc_multiplex_controller = object .. end

    val stream_rpc_multiplex_controller : ?dbg_name:string Stdlib.ref ->
           ?close_inactive_descr:bool ->
           ?preclose:(unit -> unit) ->
           ?tls:(module Netsys_crypto_types.TLS_CONFIG) * string option ->
           role:[ `Client | `Server ] ->
           Unix.file_descr ->
           Unixqueue.event_system -> rpc_multiplex_controller

The multiplex controller for stream encapsulation

- `close_inactive_descr`: If true, the descriptor is closed when inactivated
- `preclose`: This function is called just before the descriptor is closed.
- `tls`: Enables TLS support for the passed config and the passed DNS peer name

    val datagram_rpc_multiplex_controller : ?dbg_name:string Stdlib.ref ->
           ?close_inactive_descr:bool ->
           ?preclose:(unit -> unit) ->
           role:[ `Client | `Server ] ->
           Unix.file_descr ->
           Unixqueue.event_system -> rpc_multiplex_controller

The multiplex controller for datagrams ((D)TLS not yet supported)

    type internal_pipe = Netxdr.xdr_value Netsys_polypipe.polypipe

    val internal_rpc_multiplex_controller : ?dbg_name:string Stdlib.ref ->
           ?close_inactive_descr:bool ->
           ?preclose:(unit -> unit) ->
           internal_pipe ->
           internal_pipe ->
           Unixqueue.event_system -> rpc_multiplex_controller

The multiplex controller for internal connections

## Debugging

    module Debug: sig .. end