module Ldap_funserver: sig
.. end
A functional ldap server construction kit
exception Server_error of string
raised whenever an error occurrs in the server
type
connection_id = int
type
backendInfo = {
}
This structure is the guts of the ldap server. For each operation that you
implement put the function (or closure) of the correct type in this
structure. Any functions you set as None will return
`UNWILLING_TO_PERFORM, with the error string set to "not implemented".
bi_init will be called (if it is provided) before the server is brought
up, and bi_close (if it is provided) will be called before the server is
brought down. This interface is based loosely on the back-end api in
OpenLDAP.
type
server_info
This abstract type contains the server context. It has the listening,
socket, all the connected client sockets, and some internal data
structures.
val init : ?port:int -> backendInfo -> server_info
Initialize the server, create the listening socket and return the server
context, which you will pass to serv to process connections.
val shutdown : server_info -> unit
Shutdown the server
val run : server_info -> unit
Using the supplied server context, begin processing ldap operations. This
function should never terminate unless there is an exceptional condition, in
which case the exception will be raised. In many cases it is safe to restart
the server process when an exception happens.