Plasma GitLab Archive
Projects Blog Knowledge

sig
  exception Connection_lost
  type t
  type session
  type connection_id
  type connector =
      Localhost of int
    | Portmapped
    | Internet of (Unix.inet_addr * int)
    | Unix of string
    | W32_pipe of string
    | Descriptor of Unix.file_descr
    | Dynamic_descriptor of (unit -> Unix.file_descr)
  type binding_sync = {
    sync_name : string;
    sync_proc : Xdr.xdr_value -> Xdr.xdr_value;
  }
  type binding_async = {
    async_name : string;
    async_invoke : Rpc_server.session -> Xdr.xdr_value -> unit;
  }
  type binding =
      Sync of Rpc_server.binding_sync
    | Async of Rpc_server.binding_async
  val connector_of_sockaddr : Unix.sockaddr -> Rpc_server.connector
  val connector_of_socksymbol :
    Netsockaddr.socksymbol -> Rpc_server.connector
  val create :
    ?program_number:Rtypes.uint4 ->
    ?version_number:Rtypes.uint4 ->
    Unixqueue.event_system ->
    Rpc_server.connector ->
    Rpc.protocol ->
    Rpc.mode ->
    Rpc_program.t -> Rpc_server.binding list -> int -> Rpc_server.t
  class type socket_config =
    object
      method listen_options : Uq_engines.listen_options
      method multiplexing :
        close_inactive_descr:bool ->
        Rpc.protocol ->
        Unix.file_descr ->
        Unixqueue.event_system ->
        Rpc_transport.rpc_multiplex_controller Uq_engines.engine
    end
  val default_socket_config : Rpc_server.socket_config
  class default_socket_config : socket_config
  val tls_socket_config :
    (module Netsys_crypto_types.TLS_CONFIG-> Rpc_server.socket_config
  class tls_socket_config :
    (module Netsys_crypto_types.TLS_CONFIG-> socket_config
  type mode2 =
      [ `Dummy of Rpc.protocol
      | `Multiplexer_endpoint of Rpc_transport.rpc_multiplex_controller
      | `Socket of
          Rpc.protocol * Rpc_server.connector * Rpc_server.socket_config
      | `Socket_endpoint of Rpc.protocol * Unix.file_descr ]
  val create2 : Rpc_server.mode2 -> Unixqueue.event_system -> Rpc_server.t
  val bind :
    ?program_number:Rtypes.uint4 ->
    ?version_number:Rtypes.uint4 ->
    Rpc_program.t -> Rpc_server.binding list -> Rpc_server.t -> unit
  val unbind :
    ?program_number:Rtypes.uint4 ->
    ?version_number:Rtypes.uint4 -> Rpc_program.t -> Rpc_server.t -> unit
  val bound_programs : Rpc_server.t -> Rpc_program.t list
  val get_event_system : Rpc_server.session -> Unixqueue.event_system
  val get_connection_id : Rpc_server.session -> Rpc_server.connection_id
  val get_xid : Rpc_server.session -> Rtypes.uint4
  val get_socket_name : Rpc_server.session -> Unix.sockaddr
  val get_peer_name : Rpc_server.session -> Unix.sockaddr
  val get_conn_socket_name : Rpc_server.connection_id -> Unix.sockaddr
  val get_conn_peer_name : Rpc_server.connection_id -> Unix.sockaddr
  val get_server : Rpc_server.session -> Rpc_server.t
  val get_main_socket_name : Rpc_server.t -> Unix.sockaddr
  val get_protocol : Rpc_server.t -> Rpc.protocol
  val get_srv_event_system : Rpc_server.t -> Unixqueue.unix_event_system
  val get_last_proc_info : Rpc_server.t -> string
  val is_dummy : Rpc_server.t -> bool
  val get_tls_session_props :
    Rpc_server.session -> Nettls_support.tls_session_props option
  type rule =
      [ `Accept
      | `Accept_limit_length of int * Rpc_server.rule
      | `Deny
      | `Drop
      | `Reject
      | `Reject_with of Rpc.server_error ]
  val set_session_filter :
    Rpc_server.t -> (Rpc_transport.sockaddr -> Rpc_server.rule) -> unit
  val set_session_filter_2 :
    Rpc_server.t ->
    (Rpc_transport.sockaddr -> Rpc_server.connection_id -> Rpc_server.rule) ->
    unit
  val set_mstring_factories :
    Rpc_server.t -> Xdr_mstring.named_mstring_factories -> unit
  val reply : Rpc_server.session -> Xdr.xdr_value -> unit
  val reply_error : Rpc_server.session -> Rpc.server_error -> unit
  val set_exception_handler : Rpc_server.t -> (exn -> unit) -> unit
  val set_onclose_action :
    Rpc_server.t -> (Rpc_server.connection_id -> unit) -> unit
  val set_timeout : Rpc_server.t -> float -> unit
  val stop_server : ?graceful:bool -> Rpc_server.t -> unit
  val stop_connection : Rpc_server.t -> Rpc_server.connection_id -> unit
  type auth_result =
      Auth_positive of
        (string * string * string * Xdr.encoder option * Xdr.decoder option)
    | Auth_negative of Rpc.server_error
    | Auth_reply of (Xdr_mstring.mstring list * string * string)
    | Auth_drop
  exception Late_drop
  type auth_peeker =
      [ `None
      | `Peek_descriptor of Unix.file_descr -> string option
      | `Peek_multiplexer of
          Rpc_transport.rpc_multiplex_controller -> string option ]
  class type auth_details =
    object
      method client_addr : Unix.sockaddr option
      method credential : string * string
      method frame_len : int
      method message : Rpc_packer.packed_value
      method procedure : Rtypes.uint4
      method program : Rtypes.uint4
      method server_addr : Unix.sockaddr option
      method transport_user : string option
      method verifier : string * string
      method version : Rtypes.uint4
      method xid : Rtypes.uint4
    end
  class type auth_method =
    object
      method authenticate :
        Rpc_server.t ->
        Rpc_server.connection_id ->
        Rpc_server.auth_details -> (Rpc_server.auth_result -> unit) -> unit
      method flavors : string list
      method name : string
      method peek : Rpc_server.auth_peeker
    end
  val set_auth_methods : Rpc_server.t -> Rpc_server.auth_method list -> unit
  val auth_none : Rpc_server.auth_method
  val auth_too_weak : Rpc_server.auth_method
  val auth_transport : Rpc_server.auth_method
  val get_user : Rpc_server.session -> string
  val get_auth_method : Rpc_server.session -> Rpc_server.auth_method
  val verbose : bool -> unit
  val detach : Rpc_server.t -> unit
  module Debug :
    sig
      val enable : bool Pervasives.ref
      val enable_ctrace : bool Pervasives.ref
      val enable_ptrace : bool Pervasives.ref
      val ptrace_verbosity : Rpc_util.verbosity Pervasives.ref
      val disable_for_server : Rpc_server.t -> unit
    end
end
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml