module Ocamldap: sig .. end
Direct access to LDAP function
type conn
type msgid
type auth_method = [ `SIMPLE ]
type error_code = [ `ADMINLIMIT_EXCEEDED
| `AFFECTS_MULTIPLE_DSAS
| `ALIAS_DEREF_PROBLEM
| `ALIAS_PROBLEM
| `ALREADY_EXISTS
| `AUTH_METHOD_NOT_SUPPORTED
| `AUTH_UNKNOWN
| `BUSY
| `CLIENT_LOOP
| `COMPARE_FALSE
| `COMPARE_TRUE
| `CONFIDENTIALITY_REQUIRED
| `CONNECT_ERROR
| `CONSTRAINT_VIOLATION
| `CONTROL_NOT_FOUND
| `DECODING_ERROR
| `ENCODING_ERROR
| `FILTER_ERROR
| `INAPPROPRIATE_AUTH
| `INAPPROPRIATE_MATCHING
| `INSUFFICIENT_ACCESS
| `INVALID_CREDENTIALS
| `INVALID_DN_SYNTAX
| `INVALID_SYNTAX
| `IS_LEAF
| `LOCAL_ERROR
| `LOOP_DETECT
| `MORE_RESULTS_TO_RETURN
| `NAMING_VIOLATION
| `NOT_ALLOWED_ON_NONLEAF
| `NOT_ALLOWED_ON_RDN
| `NOT_SUPPORTED
| `NO_MEMORY
| `NO_OBJECT_CLASS_MODS
| `NO_RESULTS_RETURNED
| `NO_SUCH_ATTRIBUTE
| `NO_SUCH_OBJECT
| `OBJECT_CLASS_VIOLATION
| `OPERATIONS_ERROR
| `OTHER
| `PARAM_ERROR
| `PARTIAL_RESULTS
| `PROTOCOL_ERROR
| `REFERRAL
| `REFERRAL_LIMIT_EXCEEDED
| `RESULTS_TOO_LARGE
| `SASL_BIND_IN_PROGRESS
| `SERVER_DOWN
| `SIZELIMIT_EXCEEDED
| `STRONG_AUTH_NOT_SUPPORTED
| `STRONG_AUTH_REQUIRED
| `SUCCESS
| `TIMELIMIT_EXCEEDED
| `TIMEOUT
| `TYPE_OR_VALUE_EXISTS
| `UNAVAILABLE
| `UNAVAILABLE_CRITICAL_EXTENSION
| `UNDEFINED_TYPE
| `UNWILLING_TO_PERFORM
| `USER_CANCELLED ]
type mod_op = [ `ADD | `DELETE | `REPLACE ]
type search_scope = [ `BASE | `ONELEVEL | `SUBTREE ]
type attr = {
|
attr_name : string; |
|
attr_values : string array; |
}
type entry = {
|
entry_dn : string; |
|
entry_attrs : attr list; |
}
type modattr = mod_op * string * string list
type result = entry list
exception LDAP_Failure of error_code
Direct access to LDAP function
val add_s : conn -> dn:string -> attr:modattr list -> unit
Adds a new entry to the ldap database.
val bind_s : ?who:string ->
?cred:string -> ?auth_method:auth_method -> conn -> unit
Binds to the ldap server with the given credential and auth_method.
val delete_s : conn -> dn:string -> unit
Deletes the entry with the given dn from the database.
val err2string : error_code -> string
Retrieves an error message for the given ldap error code.
val init : ?version:int -> ?port:int -> string -> conn
Initializes a connection to the given ldap server. The connection is
* not actually established until one of the bind functions is called.
val modify_s : conn -> dn:string -> mods:modattr list -> unit
Modifies the specified entry with the modifications supplied in 'mods'.
val modrdn_s : conn -> dn:string -> newdn:string -> unit
Renames the given entry to newdn, modrdn always deletes the old rdn.
Same as modrdn but modrdn2 optionally deletes the old rdn.
val modrdn2_s : conn -> dn:string -> newdn:string -> deleteoldrdn:bool -> unit
val print_entry : ?channel:Pervasives.out_channel -> entry -> unit
Prints the given entry in LDIF format to the specified channel.
val search_s : ?base:string ->
?scope:search_scope ->
?attrs:string list ->
?attrsonly:bool -> conn -> string -> result
Search for the given entry with the specified base node and search scope,
optionally limiting the returned attributes to those listed in 'attrs'.
val search : ?base:string ->
?scope:search_scope ->
?attrs:string list ->
?attrsonly:bool -> conn -> string -> msgid
Search for the given entry with the specified base node and search scope,
optionally limiting the returned attributes to those listed in 'attrs'.
this is the asyncronis version of search, which will return the message id
that you must then pass to get_search_entry
val get_search_entry : conn -> msgid -> entry
actually get a search entry from and async search. If no more entries
remain, will raise LDAP_Failure `SUCCESS. If an error occurs fetching an
entry, will raise LDAP_Failure e.
val simple_bind_s : ?who:string -> ?password:string -> conn -> unit
Bind using simple authentication. This is equivalent to calling bind_s
with auth_method `SIMPLE
val unbind : conn -> unit
Releases the ldap connection and frees associated resources. The ldap
connection should not be used after it has been unbound.