Library
Module
Module type
Parameter
Class
Class type
Common data types used by ocamldap. Most of these types are taken from the ASN.1 specification for LDAP as defined in rfc2251
An encoding error has occurred, the argument contains a description of the error This is likely a bug, so it should be reported
A decoding error has occurred, the argument contains a description of the error. This MAY be a bug, but it may also be that the server you are talking to is non standard. Please report these right away in any case.
type ldap_resultcode = [
|
`SUCCESS
|
`OPERATIONS_ERROR
|
`PROTOCOL_ERROR
|
`TIMELIMIT_EXCEEDED
|
`SIZELIMIT_EXCEEDED
|
`COMPARE_FALSE
|
`COMPARE_TRUE
|
`AUTH_METHOD_NOT_SUPPORTED
|
`STRONG_AUTH_REQUIRED
|
`REFERRAL
|
`ADMINLIMIT_EXCEEDED
|
`UNAVAILABLE_CRITICAL_EXTENSION
|
`CONFIDENTIALITY_REQUIRED
|
`SASL_BIND_IN_PROGRESS
|
`NO_SUCH_ATTRIBUTE
|
`UNDEFINED_TYPE
|
`INAPPROPRIATE_MATCHING
|
`CONSTRAINT_VIOLATION
|
`TYPE_OR_VALUE_EXISTS
|
`INVALID_SYNTAX
|
`NO_SUCH_OBJECT
|
`ALIAS_PROBLEM
|
`INVALID_DN_SYNTAX
|
`IS_LEAF
|
`ALIAS_DEREF_PROBLEM
|
`INAPPROPRIATE_AUTH
|
`INVALID_CREDENTIALS
|
`INSUFFICIENT_ACCESS
|
`BUSY
|
`UNAVAILABLE
|
`UNWILLING_TO_PERFORM
|
`LOOP_DETECT
|
`NAMING_VIOLATION
|
`OBJECT_CLASS_VIOLATION
|
`NOT_ALLOWED_ON_NONLEAF
|
`NOT_ALLOWED_ON_RDN
|
`ALREADY_EXISTS
|
`NO_OBJECT_CLASS_MODS
|
`AFFECTS_MULTIPLE_DSAS
|
`OTHER
|
`SERVER_DOWN
|
`LOCAL_ERROR
|
`ENCODING_ERROR
|
`DECODING_ERROR
|
`TIMEOUT
|
`AUTH_UNKNOWN
|
`FILTER_ERROR
|
`USER_CANCELLED
|
`PARAM_ERROR
|
`NO_MEMORY
|
`CONNECT_ERROR
|
`NOT_SUPPORTED
|
`CONTROL_NOT_FOUND
|
`NO_RESULTS_RETURNED
|
`MORE_RESULTS_TO_RETURN
|
`CLIENT_LOOP
|
`REFERRAL_LIMIT_EXCEEDED
|
`UNKNOWN_ERROR of int
]
type ldap_result = {
result_code : ldap_resultcode;
matched_dn : string;
error_message : string;
ldap_referral : string list option;
}
extended information to return with the LDAP_Failure exception. Contains the remaining values which are defined by the protocol ext_matched_dn: the matched dn. Commonly set by `NO_SUCH_OBJECT. ext_referral: a list of ldapurls returned by the server when you attempted to do a write operation. If you use Ldap_ooclient with referrals set to follow you will never see this
exception LDAP_Failure of ldap_resultcode * string * ldap_ext_return
The exception raised to indicate all types of failure in the higher level libraries Ldap_funclient, and Ldap_ooclient. example LDAP_Failure (`NO_SUCH_OBJECT, "no such object",
{ext_matched_dn=Some "o=csun";ext_referral=None})
type dn = attribute list
the type used to encode and decode a search entry. Also the type returned by search_s and search_a in Ldap_funclient
type search_scope = [
|
`BASE
(*search only at the base
*)|
`ONELEVEL
(*search one level below the base
*)|
`SUBTREE
(*search the entire tree under the base
*)
]
a type defining the scope of a search filter
type filter = [
|
`And of filter list
|
`Or of filter list
|
`Not of filter
|
`EqualityMatch of attribute_value_assertion
|
`Substrings of substring_filter
|
`GreaterOrEqual of attribute_value_assertion
|
`LessOrEqual of attribute_value_assertion
|
`Present of string
|
`ApproxMatch of attribute_value_assertion
|
`ExtensibleMatch of matching_rule_assertion
]
type search_request = {
baseObject : string;
scope : search_scope;
derefAliases : alias_deref;
sizeLimit : int32;
timeLimit : int32;
typesOnly : bool;
filter : filter;
s_attributes : string list;
}
type extended_response = {
ext_result : ldap_result;
ext_responseName : string option;
ext_response : string option;
}
type protocol_op =
| Bind_request of bind_request
| Bind_response of bind_response
| Unbind_request
| Search_request of search_request
| Search_result_entry of search_result_entry
| Search_result_reference of string list
| Search_result_done of ldap_result
| Modify_request of modify_request
| Modify_response of ldap_result
| Add_request of search_result_entry
| Add_response of ldap_result
| Delete_request of string
| Delete_response of ldap_result
| Modify_dn_request of modify_dn_request
| Modify_dn_response of ldap_result
| Compare_request of compare_request
| Compare_response of ldap_result
| Abandon_request of Int32.t
| Extended_request of extended_request
| Extended_response of extended_response
type control_details = [
|
`Paged_results_control of paged_results_control_value
|
`Unknown_value of string
]
type ldap_controls = ldap_control list
type ldap_url = {
url_mech : con_mech;
url_host : string option;
url_port : string option;
url_dn : string option;
url_attributes : string list option;
url_scope : search_scope option;
url_filter : filter option;
url_ext : (bool * string * string) list option;
}
see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of telling the server that a set of ldap operations is related, its most interesting application is transactions across multiple objects. This draft is not yet implemented by any present day ldap server