/packages/ldap/src/ldaph.inc
Pascal | 1805 lines | 1053 code | 310 blank | 442 comment | 0 complexity | 17d3df7e54a015039a1f051ec88f0110 MD5 | raw file
Possible License(s): LGPL-2.0, LGPL-2.1, LGPL-3.0
- (* $OpenLDAP: pkg/ldap/include/ldap.h,v 1.168.2.16 2003/03/05 23:48:31 kurt Exp $ *)
- (*
- * Copyright 1998-2003 The OpenLDAP Foundation, Redwood City, California, USA
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License. A copy of this license is available at
- * http://www.OpenLDAP.org/license.html or in file LICENSE in the
- * top-level directory of the distribution.
- *)
- (* Portions
- * Copyright (c) 1990 Regents of the University of Michigan.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that this notice is preserved and that due credit is given
- * to the University of Michigan at Ann Arbor. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission. This software
- * is provided ``as is'' without express or implied warranty.
- *)
- const
- LDAP_VERSION1 = 1;
- LDAP_VERSION2 = 2;
- LDAP_VERSION3 = 3;
- LDAP_VERSION_MIN = LDAP_VERSION2;
- LDAP_VERSION = LDAP_VERSION2;
- LDAP_VERSION_MAX = LDAP_VERSION3;
- (*
- * We'll use 2000+draft revision for our API version number
- * As such, the number will be above the old RFC but below
- * whatever number does finally get assigned
- *)
- const
- LDAP_API_VERSION = 3001;
- LDAP_VENDOR_NAME = 'OpenLDAP';
- (* OpenLDAP API Features *)
- LDAP_API_FEATURE_X_OPENLDAP = LDAP_VENDOR_VERSION;
- {$IF defined(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT) or (defined(LDAP_THREAD_SAFE) and defined(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE))}
- (* -lldap may or may not be thread safe *)
- (* -lldap_r, if available, is always thread safe *)
- {$DEFINE LDAP_API_FEATURE_THREAD_SAFE}
- {$IFEND}
- {$IF defined(LDAP_THREAD_SAFE) and defined(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE)}
- //{$DEFINE LDAP_API_FEATURE_SESSION_SAFE}
- //{$DEFINE LDAP_API_OPERATION_SESSION_SAFE}
- {$IFEND}
- LDAP_PORT = 389; (* ldap:/// default LDAP port *)
- LDAPS_PORT = 636; (* ldaps:/// default LDAP over TLS port *)
- LDAP_ROOT_DSE = '';
- LDAP_NO_ATTRS = '1.1';
- LDAP_ALL_USER_ATTRIBUTES = '*';
- LDAP_ALL_OPERATIONAL_ATTRIBUTES = '+'; (* OpenLDAP extension *)
- LDAP_MAXINT = 2147483647;
- (*
- * LDAP_OPTions defined by draft-ldapext-ldap-c-api-02
- * 0x0000 - 0x0fff reserved for api options
- * 0x1000 - 0x3fff reserved for api extended options
- * 0x4000 - 0x7fff reserved for private and experimental options
- *)
- LDAP_OPT_API_INFO = $0000;
- LDAP_OPT_DESC = $0001; (* deprecated *)
- LDAP_OPT_DEREF = $0002;
- LDAP_OPT_SIZELIMIT = $0003;
- LDAP_OPT_TIMELIMIT = $0004;
- (* $05 - $07 not defined by current draft *)
- LDAP_OPT_REFERRALS = $0008;
- LDAP_OPT_RESTART = $0009;
- (* $0a - $10 not defined by current draft *)
- LDAP_OPT_PROTOCOL_VERSION = $0011;
- LDAP_OPT_SERVER_CONTROLS = $0012;
- LDAP_OPT_CLIENT_CONTROLS = $0013;
- (* $14 not defined by current draft *)
- LDAP_OPT_API_FEATURE_INFO = $0015;
- (* $16 - $2f not defined by current draft *)
- LDAP_OPT_HOST_NAME = $0030;
- LDAP_OPT_RESULT_CODE = $0031;
- LDAP_OPT_ERROR_NUMBER = LDAP_OPT_RESULT_CODE;
- LDAP_OPT_ERROR_STRING = $0032;
- LDAP_OPT_MATCHED_DN = $0033;
- (* $34 - $0fff not defined by current draft *)
- (* private and experimental options *)
- (* OpenLDAP specific options *)
- LDAP_OPT_DEBUG_LEVEL = $5001; (* debug level *)
- LDAP_OPT_TIMEOUT = $5002; (* default timeout *)
- LDAP_OPT_REFHOPLIMIT = $5003; (* ref hop limit *)
- LDAP_OPT_NETWORK_TIMEOUT = $5005; (* socket level timeout *)
- LDAP_OPT_URI = $5006;
- LDAP_OPT_REFERRAL_URLS = $5007; (* Referral URLs *)
- (* OpenLDAP TLS options *)
- LDAP_OPT_X_TLS = $6000;
- LDAP_OPT_X_TLS_CTX = $6001; (* SSL CTX *)
- LDAP_OPT_X_TLS_CACERTFILE = $6002;
- LDAP_OPT_X_TLS_CACERTDIR = $6003;
- LDAP_OPT_X_TLS_CERTFILE = $6004;
- LDAP_OPT_X_TLS_KEYFILE = $6005;
- LDAP_OPT_X_TLS_REQUIRE_CERT = $6006;
- (* LDAP_OPT_X_TLS_PROTOCOL = $6007; *)
- LDAP_OPT_X_TLS_CIPHER_SUITE = $6008;
- LDAP_OPT_X_TLS_RANDOM_FILE = $6009;
- LDAP_OPT_X_TLS_SSL_CTX = $600a;
- LDAP_OPT_X_TLS_CRLCHECK = $600b;
- LDAP_OPT_X_TLS_CONNECT_CB = $6600c;
- LDAP_OPT_X_TLS_CONNECT_ARG = $6600d;
- LDAP_OPT_X_TLS_DHFILE = $6600e;
- LDAP_OPT_X_TLS_NEVER = 0;
- LDAP_OPT_X_TLS_HARD = 1;
- LDAP_OPT_X_TLS_DEMAND = 2;
- LDAP_OPT_X_TLS_ALLOW = 3;
- LDAP_OPT_X_TLS_TRY = 4;
- (* OpenLDAP SASL options *)
- LDAP_OPT_X_SASL_MECH = $6100;
- LDAP_OPT_X_SASL_REALM = $6101;
- LDAP_OPT_X_SASL_AUTHCID = $6102;
- LDAP_OPT_X_SASL_AUTHZID = $6103;
- LDAP_OPT_X_SASL_SSF = $6104; (* read-only *)
- LDAP_OPT_X_SASL_SSF_EXTERNAL = $6105; (* write-only *)
- LDAP_OPT_X_SASL_SECPROPS = $6106; (* write-only *)
- LDAP_OPT_X_SASL_SSF_MIN = $6107;
- LDAP_OPT_X_SASL_SSF_MAX = $6108;
- LDAP_OPT_X_SASL_MAXBUFSIZE = $6109;
- (* Private API Extensions -- reserved for application use *)
- LDAP_OPT_PRIVATE_EXTENSION_BASE = $7000; (* Private API inclusive *)
- (*
- * ldap_get_option() and ldap_set_option() return values.
- * As later versions may return other values indicating
- * failure, current applications should only compare returned
- * value against LDAP_OPT_SUCCESS.
- *)
- LDAP_OPT_SUCCESS = 0;
- LDAP_OPT_ERROR = -1;
- (* on/off values *)
- LDAP_OPT_OFF = Pointer(0);
- function LDAP_OPT_ON: Pointer;
- const
- LDAP_API_INFO_VERSION = 1;
- type
- PLDAPAPIInfo = ^LDAPAPIInfo;
- LDAPAPIInfo = record
- ldapai_info_version : cint; (* version of LDAPAPIInfo (1) *)
- ldapai_api_version : cint; (* revision of API supported *)
- ldapai_protocol_version : cint; (* highest LDAP version supported *)
- ldapai_extensions : ppcchar; (* names of API extensions *)
- ldapai_vendor_name : pcchar; (* name of supplier *)
- ldapai_vendor_version : cint; (* supplier-specific version * 100 *)
- end;
- const
- LDAP_FEATURE_INFO_VERSION = 1; (* version of api feature structure *)
- type
- pldap_apifeature_info = ^ldap_apifeature_info;
- ldap_apifeature_info = record
- ldapaif_info_version : cint; (* version of this struct (1) *)
- ldapaif_name : pcchar; (* matches LDAP_API_FEATURE_... less the prefix *)
- ldapaif_version : cint; (* matches the value LDAP_API_FEATURE_... *)
- end;
- PLDAPAPIFeatureInfo = ^LDAPAPIFeatureInfo;
- LDAPAPIFeatureInfo = ldap_apifeature_info;
- PPPLDAPControl = ^PPLDAPControl;
- PPLDAPControl = ^PLDAPControl;
- PLDAPControl = ^LDAPControl;
- LDAPControl = record
- ldctl_oid : pcchar;
- ldctl_value : berval;
- ldctl_iscritical : cchar;
- end;
- const
- (* LDAP Controls *)
- (* standard track controls *)
- LDAP_CONTROL_MANAGEDSAIT = '2.16.840.1.113730.3.4.2'; (* RFC 3296 *)
- LDAP_CONTROL_SUBENTRIES = '1.3.6.1.4.1.4203.1.10.1'; (* RFC 3672 *)
- LDAP_CONTROL_PAGEDRESULTS = '1.2.840.113556.1.4.319'; (* RFC 2696 *)
- LDAP_CONTROL_VALUESRETURNFILTER = '1.2.826.0.1.3344810.2.3'; (* RFC 3876 *)
- LDAP_CONTROL_X_VALUESRETURNFILTER = '1.2.826.0.1.334810.2.3'; (* bad OID *)
- LDAP_CONTROL_ASSERT = '1.3.6.1.1.12';
- LDAP_CONTROL_PRE_READ = '1.3.6.1.1.13.1';
- LDAP_CONTROL_POST_READ = '1.3.6.1.1.13.2';
- (* standard track - not implemented in slapd(8) *)
- LDAP_CONTROL_SORTREQUEST = '1.2.840.113556.1.4.473'; (* RFC 2891 *)
- LDAP_CONTROL_SORTRESPONSE = '1.2.840.113556.1.4.474'; (* RFC 2891 *)
- (* but not yet formalized controls *)
- LDAP_CONTROL_PROXY_AUTHZ = '2.16.840.1.113730.3.4.18';
- (* various works in progress *)
- LDAP_CONTROL_NOOP = '1.3.6.1.4.1.4203.666.5.2';
- (* LDAP VLV *)(* not implemented in slapd(8) *)
- LDAP_CONTROL_VLVREQUEST = '2.16.840.1.113730.3.4.9';
- LDAP_CONTROL_VLVRESPONSE = '2.16.840.1.113730.3.4.10';
- (* LDAP Sync -- draft-zeilenga-ldup-sync *)(* submitted for publication *)
- LDAP_SYNC_OID = '1.3.6.1.4.1.4203.1.9.1';
- LDAP_CONTROL_SYNC = LDAP_SYNC_OID + '.1';
- LDAP_CONTROL_SYNC_STATE = LDAP_SYNC_OID + '.2';
- LDAP_CONTROL_SYNC_DONE = LDAP_SYNC_OID + '.3';
- LDAP_SYNC_INFO = LDAP_SYNC_OID + '.4';
- LDAP_SYNC_NONE = $00;
- LDAP_SYNC_REFRESH_ONLY = $01;
- LDAP_SYNC_RESERVED = $02;
- LDAP_SYNC_REFRESH_AND_PERSIST = $03;
- LDAP_SYNC_REFRESH_PRESENTS = 0;
- LDAP_SYNC_REFRESH_DELETES = 1;
- LDAP_TAG_SYNC_NEW_COOKIE = ber_tag_t($80);
- LDAP_TAG_SYNC_REFRESH_DELETE = ber_tag_t($a1);
- LDAP_TAG_SYNC_REFRESH_PRESENT = ber_tag_t($a2);
- LDAP_TAG_SYNC_ID_SET = ber_tag_t($a3);
- LDAP_TAG_SYNC_COOKIE = ber_tag_t($04);
- LDAP_TAG_REFRESHDELETES = ber_tag_t($01);
- LDAP_TAG_REFRESHDONE = ber_tag_t($01);
- LDAP_TAG_RELOAD_HINT = ber_tag_t($01);
- LDAP_SYNC_PRESENT = 0;
- LDAP_SYNC_ADD = 1;
- LDAP_SYNC_MODIFY = 2;
- LDAP_SYNC_DELETE = 3;
- (* MS ActiveDirectory controls (for compatibility) *)
- LDAP_CONTROL_X_DOMAIN_SCOPE = '1.2.840.113556.1.4.1339';
- LDAP_CONTROL_X_PERMISSIVE_MODIFY = '1.2.840.113556.1.4.1413';
- (* LDAP Unsolicited Notifications *)
- LDAP_NOTICE_OF_DISCONNECTION = '1.3.6.1.4.1.1466.20036'; (* RFC 2251 *)
- LDAP_NOTICE_DISCONNECT = LDAP_NOTICE_OF_DISCONNECTION;
- (* LDAP Extended Operations *)
- LDAP_EXOP_START_TLS = '1.3.6.1.4.1.1466.20037'; (* RFC 2830 *)
- LDAP_EXOP_MODIFY_PASSWD = '1.3.6.1.4.1.4203.1.11.1'; (* RFC 3062 *)
- LDAP_TAG_EXOP_MODIFY_PASSWD_ID = ber_tag_t($80);
- LDAP_TAG_EXOP_MODIFY_PASSWD_OLD = ber_tag_t($81);
- LDAP_TAG_EXOP_MODIFY_PASSWD_NEW = ber_tag_t($82);
- LDAP_TAG_EXOP_MODIFY_PASSWD_GEN = ber_tag_t($80);
- LDAP_EXOP_X_WHO_AM_I = '1.3.6.1.4.1.4203.1.11.3';
- LDAP_EXOP_X_CANCEL = '1.3.6.1.4.1.4203.666.6.3';
- (* LDAP Features *)
- LDAP_FEATURE_ALL_OP_ATTRS = '1.3.6.1.4.1.4203.1.5.1'; (* RFC 3673 *)
- LDAP_FEATURE_OBJECTCLASS_ATTRS = '1.3.6.1.4.1.4203.1.5.2'; (* @objectClass - new number to be assigned *)
- LDAP_FEATURE_ABSOLUTE_FILTERS = '1.3.6.1.4.1.4203.1.5.3'; (* (&) (|) *)
- LDAP_FEATURE_LANGUAGE_TAG_OPTIONS = '1.3.6.1.4.1.4203.1.5.4';
- LDAP_FEATURE_LANGUAGE_RANGE_OPTIONS = '1.3.6.1.4.1.4203.1.5.5';
- LDAP_FEATURE_MODIFY_INCREMENT = '1.3.6.1.1.14';
- (*
- * specific LDAP instantiations of BER types we know about
- *)
- (* Overview of LBER tag construction
- *
- * Bits
- * ______
- * 8 7 | CLASS
- * 0 0 = UNIVERSAL
- * 0 1 = APPLICATION
- * 1 0 = CONTEXT-SPECIFIC
- * 1 1 = PRIVATE
- * _____
- * | 6 | DATA-TYPE
- * 0 = PRIMITIVE
- * 1 = CONSTRUCTED
- * ___________
- * | 5 ... 1 | TAG-NUMBER
- *)
- (* general stuff *)
- LDAP_TAG_MESSAGE = ber_tag_t($30); (* constructed + 16 *)
- LDAP_TAG_MSGID = ber_tag_t($02); (* integer *)
- LDAP_TAG_LDAPDN = ber_tag_t($04); (* octet string *)
- LDAP_TAG_LDAPCRED = ber_tag_t($04); (* octet string *)
- LDAP_TAG_CONTROLS = ber_tag_t($a0); (* context specific + constructed + 0 *)
- LDAP_TAG_REFERRAL = ber_tag_t($a3); (* context specific + constructed + 3 *)
- LDAP_TAG_NEWSUPERIOR = ber_tag_t($80); (* context-specific + primitive + 0 *)
- LDAP_TAG_EXOP_REQ_OID = ber_tag_t($80); (* context specific + primitive *)
- LDAP_TAG_EXOP_REQ_VALUE = ber_tag_t($81); (* context specific + primitive *)
- LDAP_TAG_EXOP_RES_OID = ber_tag_t($8a); (* context specific + primitive *)
- LDAP_TAG_EXOP_RES_VALUE = ber_tag_t($8b); (* context specific + primitive *)
- LDAP_TAG_IM_RES_OID = ber_tag_t($80); (* context specific + primitive *)
- LDAP_TAG_IM_RES_VALUE = ber_tag_t($81); (* context specific + primitive *)
- LDAP_TAG_SASL_RES_CREDS = ber_tag_t($87); (* context specific + primitive *)
- (* possible operations a client can invoke *)
- LDAP_REQ_BIND = ber_tag_t($60); (* application + constructed *)
- LDAP_REQ_UNBIND = ber_tag_t($42); (* application + primitive *)
- LDAP_REQ_SEARCH = ber_tag_t($63); (* application + constructed *)
- LDAP_REQ_MODIFY = ber_tag_t($66); (* application + constructed *)
- LDAP_REQ_ADD = ber_tag_t($68); (* application + constructed *)
- LDAP_REQ_DELETE = ber_tag_t($4a); (* application + primitive *)
- LDAP_REQ_MODDN = ber_tag_t($6c); (* application + constructed *)
- LDAP_REQ_MODRDN = LDAP_REQ_MODDN;
- LDAP_REQ_RENAME = LDAP_REQ_MODDN;
- LDAP_REQ_COMPARE = ber_tag_t($6e); (* application + constructed *)
- LDAP_REQ_ABANDON = ber_tag_t($50); (* application + primitive *)
- LDAP_REQ_EXTENDED = ber_tag_t($77); (* application + constructed *)
- (* possible result types a server can return *)
- LDAP_RES_BIND = ber_tag_t($61); (* application + constructed *)
- LDAP_RES_SEARCH_ENTRY = ber_tag_t($64); (* application + constructed *)
- LDAP_RES_SEARCH_REFERENCE = ber_tag_t($73); (* V3: application + constructed *)
- LDAP_RES_SEARCH_RESULT = ber_tag_t($65); (* application + constructed *)
- LDAP_RES_MODIFY = ber_tag_t($67); (* application + constructed *)
- LDAP_RES_ADD = ber_tag_t($69); (* application + constructed *)
- LDAP_RES_DELETE = ber_tag_t($6b); (* application + constructed *)
- LDAP_RES_MODDN = ber_tag_t($6d); (* application + constructed *)
- LDAP_RES_MODRDN = LDAP_RES_MODDN; (* application + constructed *)
- LDAP_RES_RENAME = LDAP_RES_MODDN; (* application + constructed *)
- LDAP_RES_COMPARE = ber_tag_t($6f); (* application + constructed *)
- LDAP_RES_EXTENDED = ber_tag_t($78); (* V3: application + constructed *)
- LDAP_RES_INTERMEDIATE = ber_tag_t($79); (* V3+: application + constructed *)
- LDAP_RES_ANY = -1;
- LDAP_RES_UNSOLICITED = 0;
- (* sasl methods *)
- LDAP_SASL_SIMPLE = pcchar(0);
- LDAP_SASL_NULL = '';
- (* authentication methods available *)
- LDAP_AUTH_NONE = ber_tag_t($00); (* no authentication *)
- LDAP_AUTH_SIMPLE = ber_tag_t($80); (* context specific + primitive *)
- LDAP_AUTH_SASL = ber_tag_t($a3); (* context specific + constructed *)
- LDAP_AUTH_KRBV4 = ber_tag_t($ff); (* means do both of the following *)
- LDAP_AUTH_KRBV41 = ber_tag_t($81); (* context specific + primitive *)
- LDAP_AUTH_KRBV42 = ber_tag_t($82); (* context specific + primitive *)
- (* filter types *)
- LDAP_FILTER_AND = ber_tag_t($a0); (* context specific + constructed *)
- LDAP_FILTER_OR = ber_tag_t($a1); (* context specific + constructed *)
- LDAP_FILTER_NOT = ber_tag_t($a2); (* context specific + constructed *)
- LDAP_FILTER_EQUALITY = ber_tag_t($a3); (* context specific + constructed *)
- LDAP_FILTER_SUBSTRINGS = ber_tag_t($a4); (* context specific + constructed *)
- LDAP_FILTER_GE = ber_tag_t($a5); (* context specific + constructed *)
- LDAP_FILTER_LE = ber_tag_t($a6); (* context specific + constructed *)
- LDAP_FILTER_PRESENT = ber_tag_t($87); (* context specific + primitive *)
- LDAP_FILTER_APPROX = ber_tag_t($a8); (* context specific + constructed *)
- LDAP_FILTER_EXT = ber_tag_t($a9); (* context specific + constructed *)
- (* extended filter component types *)
- LDAP_FILTER_EXT_OID = ber_tag_t($81); (* context specific *)
- LDAP_FILTER_EXT_TYPE = ber_tag_t($82); (* context specific *)
- LDAP_FILTER_EXT_VALUE = ber_tag_t($83); (* context specific *)
- LDAP_FILTER_EXT_DNATTRS = ber_tag_t($84); (* context specific *)
- (* substring filter component types *)
- LDAP_SUBSTRING_INITIAL = ber_tag_t($80); (* context specific *)
- LDAP_SUBSTRING_ANY = ber_tag_t($81); (* context specific *)
- LDAP_SUBSTRING_FINAL = ber_tag_t($82); (* context specific *)
- (* search scopes *)
- LDAP_SCOPE_DEFAULT = ber_int_t(-1); (* OpenLDAP extension *)
- LDAP_SCOPE_BASE = ber_int_t($0000);
- LDAP_SCOPE_BASEOBJECT = LDAP_SCOPE_BASE;
- LDAP_SCOPE_ONELEVEL = ber_int_t($0001);
- LDAP_SCOPE_ONE = LDAP_SCOPE_ONELEVEL;
- LDAP_SCOPE_SUBTREE = ber_int_t($0002);
- LDAP_SCOPE_SUB = LDAP_SCOPE_SUBTREE;
- (*
- * possible error codes we can return
- *)
- function LDAP_RANGE(n, x, y: ber_int_t): Boolean;
- const
- LDAP_SUCCESS = $00;
- LDAP_OPERATIONS_ERROR = $01;
- LDAP_PROTOCOL_ERROR = $02;
- LDAP_TIMELIMIT_EXCEEDED = $03;
- LDAP_SIZELIMIT_EXCEEDED = $04;
- LDAP_COMPARE_FALSE = $05;
- LDAP_COMPARE_TRUE = $06;
- LDAP_AUTH_METHOD_NOT_SUPPORTED = $07;
- LDAP_STRONG_AUTH_NOT_SUPPORTED = LDAP_AUTH_METHOD_NOT_SUPPORTED;
- LDAP_STRONG_AUTH_REQUIRED = $08;
- LDAP_PARTIAL_RESULTS = $09; (* LDAPv2+ (not LDAPv3) *)
- LDAP_REFERRAL = $0a; (* LDAPv3 *)
- LDAP_ADMINLIMIT_EXCEEDED = $0b; (* LDAPv3 *)
- LDAP_UNAVAILABLE_CRITICAL_EXTENSION = $0c; (* LDAPv3 *)
- LDAP_CONFIDENTIALITY_REQUIRED = $0d; (* LDAPv3 *)
- LDAP_SASL_BIND_IN_PROGRESS = $0e; (* LDAPv3 *)
- function LDAP_ATTR_ERROR(n: ber_int_t): Boolean;
- const
- LDAP_NO_SUCH_ATTRIBUTE = $10;
- LDAP_UNDEFINED_TYPE = $11;
- LDAP_INAPPROPRIATE_MATCHING = $12;
- LDAP_CONSTRAINT_VIOLATION = $13;
- LDAP_TYPE_OR_VALUE_EXISTS = $14;
- LDAP_INVALID_SYNTAX = $15;
- function LDAP_NAME_ERROR(n: ber_int_t): Boolean;
- const
- LDAP_NO_SUCH_OBJECT = $20;
- LDAP_ALIAS_PROBLEM = $21;
- LDAP_INVALID_DN_SYNTAX = $22;
- LDAP_IS_LEAF = $23; (* not LDAPv3 *)
- LDAP_ALIAS_DEREF_PROBLEM = $24;
- function LDAP_SECURITY_ERROR(n: ber_int_t): Boolean;
- const
- LDAP_PROXY_AUTHZ_FAILURE = $2F; (* LDAPv3 proxy authorization *)
- LDAP_INAPPROPRIATE_AUTH = $30;
- LDAP_INVALID_CREDENTIALS = $31;
- LDAP_INSUFFICIENT_ACCESS = $32;
- function LDAP_SERVICE_ERROR(n: ber_int_t): Boolean;
- const
- LDAP_BUSY = $33;
- LDAP_UNAVAILABLE = $34;
- LDAP_UNWILLING_TO_PERFORM = $35;
- LDAP_LOOP_DETECT = $36;
- function LDAP_UPDATE_ERROR(n: ber_int_t): Boolean;
- const
- LDAP_NAMING_VIOLATION = $40;
- LDAP_OBJECT_CLASS_VIOLATION = $41;
- LDAP_NOT_ALLOWED_ON_NONLEAF = $42;
- LDAP_NOT_ALLOWED_ON_RDN = $43;
- LDAP_ALREADY_EXISTS = $44;
- LDAP_NO_OBJECT_CLASS_MODS = $45;
- LDAP_RESULTS_TOO_LARGE = $46; (* CLDAP *)
- LDAP_AFFECTS_MULTIPLE_DSAS = $47; (* LDAPv3 *)
- LDAP_OTHER = $50;
- (* for the LDAP Sync operation *)
- LDAP_SYNC_REFRESH_REQUIRED = $4100;
- (* for the LDAP No-Op control *)
- LDAP_NO_OPERATION = $410e;
- (* for the Assertion control *)
- LDAP_ASSERTION_FAILED = $410f;
- (* for the Cancel operation *)
- LDAP_CANCELLED = $4110;
- LDAP_NO_SUCH_OPERATION = $4111;
- LDAP_TOO_LATE = $4112;
- LDAP_CANNOT_CANCEL = $4113;
- (* API Error Codes
- *
- * Based on draft-ietf-ldap-c-api-xx
- * but with new negative code values
- *)
- function LDAP_API_ERROR(n: ber_int_t): Boolean;
- function LDAP_API_RESULT(n: ber_int_t): Boolean;
- const
- LDAP_SERVER_DOWN = -1;
- LDAP_LOCAL_ERROR = -2;
- LDAP_ENCODING_ERROR = -3;
- LDAP_DECODING_ERROR = -4;
- LDAP_TIMEOUT = -5;
- LDAP_AUTH_UNKNOWN = -6;
- LDAP_FILTER_ERROR = -7;
- LDAP_USER_CANCELLED = -8;
- LDAP_PARAM_ERROR = -9;
- LDAP_NO_MEMORY = -10;
- LDAP_CONNECT_ERROR = -11;
- LDAP_NOT_SUPPORTED = -12;
- LDAP_CONTROL_NOT_FOUND = -13;
- LDAP_NO_RESULTS_RETURNED = -14;
- LDAP_MORE_RESULTS_TO_RETURN = -15;
- LDAP_CLIENT_LOOP = -16;
- LDAP_REFERRAL_LIMIT_EXCEEDED = -17;
- (*
- * This structure represents both ldap messages and ldap responses.
- * These are really the same, except in the case of search responses,
- * where a response has multiple messages.
- *)
- type
- //typedef struct ldapmsg LDAPMessage;
- pldapmsg = Pointer;
- PPLDAPMessage = ^PLDAPMessage;
- PLDAPMessage = pldapmsg;
- (* for modifications *)
- const
- LDAP_MOD_OP = $0007;
- LDAP_MOD_ADD = $0000;
- LDAP_MOD_DELETE = $0001;
- LDAP_MOD_REPLACE = $0002;
- LDAP_MOD_INCREMENT = $0003; (* OpenLDAP extension *)
- LDAP_MOD_BVALUES = $0080;
- type
- PPPLDAPMod = ^PPLDAPMod;
- PPLDAPMod = ^PLDAPMod;
- PLDAPMod = ^LDAPMod;
- LDAPMod = record
- mod_op : cint;
- (* IMPORTANT: do not use code 0x1000 (or above),
- * it is used internally by the backends!
- * (see ldap/servers/slapd/slap.h)
- *)
- mod_type : pcchar;
- case cint of
- 0: (mod_vals : record
- case cint of
- 0: (modv_strvals : ppcchar);
- 1: (modv_bvals : PPBerval);
- end);
- 1: (case cint of
- 0: (mod_values : ppcchar);
- 1: (mod_bvalues : PPBerval));
- end;
- (*
- * structure representing an ldap session which can
- * encompass connections to multiple servers (in the
- * face of referrals).
- *)
- PLDAP = Pointer;
- const
- LDAP_DEREF_NEVER = $00;
- LDAP_DEREF_SEARCHING = $01;
- LDAP_DEREF_FINDING = $02;
- LDAP_DEREF_ALWAYS = $03;
- LDAP_NO_LIMIT = 0;
- (* how many messages to retrieve results for *)
- LDAP_MSG_ONE = $00;
- LDAP_MSG_ALL = $01;
- LDAP_MSG_RECEIVED = $02;
- (*
- * types for ldap URL handling
- *)
- type
- pldap_url_desc = ^ldap_url_desc;
- ldap_url_desc = record
- lud_next : pldap_url_desc;
- lud_scheme : pcchar;
- lud_host : pcchar;
- lud_port : cint;
- lud_dn : pcchar;
- lud_attrs : ppcchar;
- lud_scope : cint;
- lud_filter : pcchar;
- lud_exts : pcchar;
- lud_crit_exts : cint;
- end;
- PLDAPURLDesc = ^LDAPURLDesc;
- LDAPURLDesc = ldap_url_desc;
- const
- LDAP_URL_SUCCESS = $00; (* Success *)
- LDAP_URL_ERR_MEM = $01; (* can't allocate memory space *)
- LDAP_URL_ERR_PARAM = $02; (* parameter is bad *)
- LDAP_URL_ERR_BADSCHEME = $03; (* URL doesn't begin with "ldap[si]://" *)
- LDAP_URL_ERR_BADENCLOSURE = $04; (* URL is missing trailing ">" *)
- LDAP_URL_ERR_BADURL = $05; (* URL is bad *)
- LDAP_URL_ERR_BADHOST = $06; (* host port is bad *)
- LDAP_URL_ERR_BADATTRS = $07; (* bad (or missing) attributes *)
- LDAP_URL_ERR_BADSCOPE = $08; (* scope string is invalid (or missing) *)
- LDAP_URL_ERR_BADFILTER = $09; (* bad or missing filter *)
- LDAP_URL_ERR_BADEXTS = $0a; (* bad or missing extensions *)
- (*
- * The API draft spec says we should declare (or cause to be declared)
- * 'struct timeval'. We don't. See IETF LDAPext discussions.
- *)
- type
- ptimeval = Pointer;
- (*
- * in options.c:
- *)
- function ldap_get_option(
- ld : PLDAP;
- option : cint;
- outvalue : Pointer
- ): cint; cdecl; external;
- function ldap_set_option(
- ld : PLDAP;
- option : cint;
- const invalue : Pointer
- ): cint; cdecl; external;
- (* V3 REBIND Function Callback Prototype *)
- type
- LDAP_REBIND_PROC = function(ld: PLDAP; const url: pcchar; request: ber_tag_t; msgid: ber_int_t; params: Pointer): cint; cdecl;
- function ldap_set_rebind_proc(
- ld : PLDAP;
- rebind_proc : LDAP_REBIND_PROC;
- params : Pointer
- ): cint; cdecl; external;
- (* V3 referral selection Function Callback Prototype *)
- type
- LDAP_NEXTREF_PROC = function(ld: PLDAP; refsp: pppcchar; cntp: pcint; params: Pointer): cint; cdecl;
- function ldap_set_nextref_proc(
- ld : PLDAP;
- nextref_proc : LDAP_NEXTREF_PROC;
- params : Pointer
- ): cint; cdecl; external;
- (*
- * in controls.c:
- *)
- function ldap_create_control(
- const requestOID: pcchar;
- ber : PBerElement;
- iscritical : cint;
- var ctrlp : PLDAPControl
- ): cint; cdecl; external;
- function ldap_find_control(
- const oid : pcchar;
- ctrls : PPLDAPControl
- ): PLDAPControl; cdecl; external;
- procedure ldap_control_free(
- ctrl : PLDAPControl
- ); cdecl; external;
- procedure ldap_controls_free(
- ctrls : PPLDAPControl
- ); cdecl; external;
- (*
- * in dnssrv.c:
- *)
- function ldap_domain2dn(
- const domain : pcchar;
- var dn : pcchar
- ): cint; cdecl; external;
- function ldap_dn2domain(
- const dn : pcchar;
- var domain : pcchar
- ): cint; cdecl; external;
- function ldap_domain2hostlist(
- const domain : pcchar;
- var hostlist : pcchar
- ): cint; cdecl; external;
- (*
- * in extended.c:
- *)
- function ldap_extended_operation(
- ld : PLDAP;
- const reqoid : pcchar;
- reqdata : PBerval;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_extended_operation_s(
- ld : PLDAP;
- const reqoid : pcchar;
- reqdata : PBerval;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var retoidp : pcchar;
- var retdatap : PBerval
- ): cint; cdecl; external;
- function ldap_parse_extended_result(
- ld : PLDAP;
- res : PLDAPMessage;
- var retoidp : pcchar;
- var retdatap : PBerval;
- freeit : cbool
- ): cint; cdecl; external;
- function ldap_parse_intermediate(
- ld : PLDAP;
- res : PLDAPMessage;
- var retoidp : pcchar;
- var retdatap : PBerval;
- serverctrls : PPPLDAPControl;
- freeit : cbool
- ): cint; cdecl; external;
- (*
- * in groupings.c:
- *)
- (*#ifdef LDAP_EXOP_GROUPING_CREATE
- LDAP_F( int )
- ldap_grouping_create LDAP_P((
- LDAP *ld,
- LDAP_CONST cchar *grpoid,
- struct berval *grpdata,
- LDAPControl **serverctrls,
- LDAPControl **clientctrls,
- int *msgidp ));
- LDAP_F( int )
- ldap_grouping_create_s LDAP_P((
- LDAP *ld,
- LDAP_CONST cchar *grpoid,
- struct berval *grpdata,
- LDAPControl **serverctrls,
- LDAPControl **clientctrls,
- struct berval **retgrpcookiep,
- struct berval **retgrpdatap ));
- LDAP_F( int )
- ldap_parse_grouping_create_result LDAP_P((
- LDAP *ld,
- LDAPMessage *res,
- struct berval **retgrpcookiep,
- struct berval **retgrpdatap,
- LDAPControl ***serverctrls,
- int freeit ));
- LDAP_F( int )
- ldap_grouping_end LDAP_P((
- LDAP *ld,
- LDAP_CONST cchar *grpoid,
- struct berval *grpdata,
- LDAPControl **serverctrls,
- LDAPControl **clientctrls,
- int *msgidp ));
- LDAP_F( int )
- ldap_grouping_end_s LDAP_P((
- LDAP *ld,
- LDAP_CONST cchar *grpoid,
- struct berval *grpdata,
- LDAPControl **serverctrls,
- LDAPControl **clientctrls,
- struct berval **retgrpdatap ));
- LDAP_F( int )
- ldap_parse_grouping_end_result LDAP_P((
- LDAP *ld,
- LDAPMessage *res,
- struct berval **retgrpdatap,
- LDAPControl ***serverctrls,
- int freeit ));
- LDAP_F( int )
- ldap_grouping_action_operation LDAP_P((
- LDAP *ld,
- LDAP_CONST cchar *grpoid,
- struct berval *grpdata,
- LDAPControl **serverctrls,
- LDAPControl **clientctrls,
- int *msgidp ));
- LDAP_F( int )
- ldap_grouping_action_operation_s LDAP_P((
- LDAP *ld,
- LDAP_CONST cchar *grpoid,
- struct berval *grpdata,
- LDAPControl **serverctrls,
- LDAPControl **clientctrls,
- struct berval **retgrpcookiep,
- struct berval **retgrpdatap ));
- LDAP_F( int )
- ldap_parse_grouping_action_result LDAP_P((
- LDAP *ld,
- LDAPMessage *res,
- struct berval **retgrpcookiep,
- struct berval **retgrpdatap,
- LDAPControl ***serverctrls,
- int freeit ));
- LDAP_F( int )
- ldap_parse_grouping_end_notice LDAP_P((
- LDAP *ld,
- LDAPMessage *res,
- struct berval **retdatap,
- struct berval **retgrpcookiep,
- struct berval **retgrpdatap,
- int freeit ));
- LDAP_F( int )
- ldap_parse_grouping_info_notice LDAP_P((
- LDAP *ld,
- LDAPMessage *res,
- struct berval **retdatap,
- struct berval **retgrpcookiep,
- struct berval **retgrpdatap,
- int freeit ));
- #endif
- *)
- (*
- * in abandon.c:
- *)
- function ldap_abandon_ext(
- ld : PLDAP;
- msgid : cint;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in add.c:
- *)
- function ldap_add_ext(
- ld : PLDAP;
- const dn : pcchar;
- attrs : PPLDAPMod;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_add_ext_s(
- ld : PLDAP;
- const dn : pcchar;
- attrs : PPLDAPMod;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in sasl.c:
- *)
- function ldap_sasl_bind(
- ld : PLDAP;
- const dn : pcchar;
- const mechanism : pcchar;
- cred : PBerval;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_sasl_bind_s(
- ld : PLDAP;
- const dn : pcchar;
- const mechanism : pcchar;
- cred : PBerval;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- servercredp : PPBerval
- ): cint; cdecl; external;
- (* Interaction flags (should be passed about in a control)
- * Automatic (default): use defaults, prompt otherwise
- * Interactive: prompt always
- * Quiet: never prompt
- *)
- const
- LDAP_SASL_AUTOMATIC = 0;
- LDAP_SASL_INTERACTIVE = 1;
- LDAP_SASL_QUIET = 2;
- (*
- * V3 SASL Interaction Function Callback Prototype
- * when using Cyrus SASL, interact is pointer to sasl_interact_t
- * should likely passed in a control (and provided controls)
- *)
- type
- LDAP_SASL_INTERACT_PROC = function(ld: PLDAP; flags: cuint; defaults, interact: Pointer): cint; cdecl;
- function ldap_sasl_interactive_bind_s(
- ld : PLDAP;
- const dn : pcchar;
- const mechanism : pcchar;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- flags : cuint;
- proc : LDAP_SASL_INTERACT_PROC;
- defaults : Pointer
- ): cint; cdecl; external;
- function ldap_parse_sasl_bind_result(
- ld : PLDAP;
- res : PLDAPMessage;
- var servercredp : PBerval;
- freeit : cbool
- ): cint; cdecl; external;
- (*
- * in compare.c:
- *)
- function ldap_compare_ext(
- ld : PLDAP;
- const dn : pcchar;
- const attr : pcchar;
- bvalue : PBerval;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_compare_ext_s(
- ld : PLDAP;
- const dn : pcchar;
- const attr : pcchar;
- bvalue : PBerval;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in delete.c:
- *)
- function ldap_delete_ext(
- ld : PLDAP;
- const dn : pcchar;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_delete_ext_s(
- ld : PLDAP;
- const dn : pcchar;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in error.c:
- *)
- function ldap_parse_result(
- ld : PLDAP;
- res : PLDAPMessage;
- errcodep : pcint;
- matcheddnp : ppcchar;
- errmsgp : ppcchar;
- referralsp : pppcchar;
- serverctrls : PPPLDAPControl;
- freeit : cbool
- ): cint; cdecl; external;
- function ldap_err2string(
- err : cint
- ): pcchar; cdecl; external;
- (*
- * in modify.c:
- *)
- function ldap_modify_ext(
- ld : PLDAP;
- const dn : pcchar;
- mods : PPLDAPMod;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_modify_ext_s(
- ld : PLDAP;
- const dn : pcchar;
- mods : PPLDAPMod;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in modrdn.c:
- *)
- function ldap_rename(
- ld : PLDAP;
- const dn : pcchar;
- const newrdn : pcchar;
- const newSuperior: pcchar;
- deleteoldrdn : cbool;
- sctrls : PPLDAPControl;
- cctrls : PPPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_rename_s(
- ld : PLDAP;
- const dn : pcchar;
- const newrdn : pcchar;
- const newSuperior: pcchar;
- deleteoldrdn : cbool;
- sctrls : PPLDAPControl;
- cctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in open.c:
- *)
- function ldap_create(
- var ld : PLDAP
- ): cint; cdecl; external;
- function ldap_initialize(
- var ld : PLDAP;
- const url : pcchar
- ): cint; cdecl; external;
- (*
- * in tls.c
- *)
- function ldap_tls_inplace(
- ld : PLDAP
- ): cint; cdecl; external;
- function ldap_install_tls(
- ld : PLDAP
- ): cint; cdecl; external;
- function ldap_start_tls(
- ld : PLDAP;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_start_tls_s(
- ld : PLDAP;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in messages.c:
- *)
- function ldap_first_message(
- ld : PLDAP;
- chain : PLDAPMessage
- ): PLDAPMessage; cdecl; external;
- function ldap_next_message(
- ld : PLDAP;
- msg : PLDAPMessage
- ): PLDAPMessage; cdecl; external;
- function ldap_count_messages(
- ld : PLDAP;
- chain : PLDAPMessage
- ): cint; cdecl; external;
- (*
- * in references.c:
- *)
- function ldap_first_reference(
- ld : PLDAP;
- chain : PLDAPMessage
- ): PLDAPMessage; cdecl; external;
- function ldap_next_reference(
- ld : PLDAP;
- ref : PLDAPMessage
- ): PLDAPMessage; cdecl; external;
- function ldap_count_references(
- ld : PLDAP;
- chain : PLDAPMessage
- ): cint; cdecl; external;
- function ldap_parse_reference(
- ld : PLDAP;
- ref : PLDAPMessage;
- var referralsp : ppcchar;
- serverctrls : PPPLDAPControl;
- freeit : cbool
- ): cint; cdecl; external;
- (*
- * in getentry.c:
- *)
- function ldap_first_entry(
- ld : PLDAP;
- chain : PLDAPMessage
- ): PLDAPMessage; cdecl; external;
- function ldap_next_entry(
- ld : PLDAP;
- entry : PLDAPMessage
- ): PLDAPMessage; cdecl; external;
- function ldap_count_entries(
- ld : PLDAP;
- chain : PLDAPMessage
- ): cint; cdecl; external;
- function ldap_get_entry_controls(
- ld : PLDAP;
- entry : PLDAPMessage;
- var serverctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in addentry.c
- *)
- function ldap_delete_result_entry(
- list : PPLDAPMessage;
- e : PLDAPMessage
- ): PLDAPMessage; cdecl; external;
- procedure ldap_add_result_entry(
- list : PPLDAPMessage;
- e : PLDAPMessage
- ); cdecl; external;
- (*
- * in getdn.c
- *)
- function ldap_get_dn(
- ld : PLDAP;
- entry : PLDAPMessage
- ): pcchar; cdecl; external;
- const
- LDAP_AVA_NULL = $0000;
- LDAP_AVA_STRING = $0001;
- LDAP_AVA_BINARY = $0002;
- LDAP_AVA_NONPRINTABLE = $0004;
- LDAP_AVA_FREE_ATTR = $0010;
- LDAP_AVA_FREE_VALUE = $0020;
- type
- pldap_ava = ^ldap_ava;
- ldap_ava = record
- la_attr : berval;
- la_value : berval;
- la_flags : cuint;
- la_private : Pointer;
- end;
- PLDAPAVA = ^LDAPAVA;
- LDAPAVA = ldap_ava;
- PLDAPRDN = ^LDAPRDN;
- LDAPRDN = ^PLDAPAVA;
- PLDAPDN = ^LDAPDN;
- LDAPDN = ^LDAPRDN;
- const
- (* DN formats *)
- LDAP_DN_FORMAT_LDAP = $0000;
- LDAP_DN_FORMAT_LDAPV3 = $0010;
- LDAP_DN_FORMAT_LDAPV2 = $0020;
- LDAP_DN_FORMAT_DCE = $0030;
- LDAP_DN_FORMAT_UFN = $0040; (* dn2str only *)
- LDAP_DN_FORMAT_AD_CANONICAL = $0050; (* dn2str only *)
- LDAP_DN_FORMAT_LBER = $00F0; (* for testing only *)
- LDAP_DN_FORMAT_MASK = $00F0;
- (* DN flags *)
- LDAP_DN_PRETTY = $0100;
- LDAP_DN_SKIP = $0200;
- LDAP_DN_P_NOLEADTRAILSPACES = $1000;
- LDAP_DN_P_NOSPACEAFTERRDN = $2000;
- LDAP_DN_PEDANTIC = $F000;
- procedure ldap_rdnfree(rdn: LDAPRDN); cdecl; external;
- procedure ldap_dnfree(rdn: LDAPDN); cdecl; external;
- function ldap_bv2dn(
- bv : PBerval;
- var dn : LDAPDN;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_str2dn(
- const str : pcchar;
- var dn : LDAPDN;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_dn2bv(
- dn : LDAPDN;
- bv : PBerval;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_dn2str(
- dn : LDAPDN;
- var str : pcchar;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_bv2rdn(
- bv : PBerval;
- var rdn : LDAPRDN;
- var next : pcchar;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_str2rdn(
- const str : pcchar;
- var rdn : LDAPRDN;
- var next : pcchar;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_rdn2bv(
- rdn : LDAPRDN;
- bv : PBerval;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_rdn2str(
- rdn : LDAPRDN;
- var str : pcchar;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_dn_normalize(
- const _in : pcchar;
- iflags : cuint;
- var _out : pcchar;
- oflags : cuint
- ): cint; cdecl; external;
- type
- LDAPDN_rewrite_func = function(dn: LDAPDN; flags: cuint; ctx: Pointer): cint; cdecl;
- function ldap_X509dn2bv(
- x509_name : Pointer;
- dn : PBerval;
- func : LDAPDN_rewrite_func;
- flags : cuint
- ): cint; cdecl; external;
- function ldap_get_dn_ber(
- ld : PLDAP;
- e : PLDAPMessage;
- var berout : PBerElement;
- dn : PBerval
- ): cint; cdecl; external;
- function ldap_get_attribute_ber(
- ld : PLDAP;
- e : PLDAPMessage;
- ber : PBerElement;
- attr : PBerval;
- var vals : PBerval
- ): cint; cdecl; external;
- (*
- * in getattr.c
- *)
- function ldap_first_attribute(
- ld : PLDAP;
- entry : PLDAPMessage;
- var ber : PBerElement
- ): pcchar; cdecl; external;
- function ldap_next_attribute(
- ld : PLDAP;
- entry : PLDAPMessage;
- ber : PBerElement
- ): pcchar; cdecl; external;
- (*
- * in getvalues.c
- *)
- function ldap_get_values_len(
- ld : PLDAP;
- entry : PLDAPMessage;
- const target : pcchar
- ): PPBerval; cdecl; external;
- function ldap_count_values_len(
- vals : PPBerval
- ): cint; cdecl; external;
- procedure ldap_value_free_len(
- vals : PPBerval
- ); cdecl; external;
- (*
- * in result.c:
- *)
- function ldap_result(
- ld : PLDAP;
- msgid : cint;
- all : cint;
- timeout : ptimeval;
- var result : PLDAPMessage
- ): cint; cdecl; external;
- function ldap_msgtype(
- lm : PLDAPMessage
- ): cint; cdecl; external;
- function ldap_msgid(
- lm : PLDAPMessage
- ): cint; cdecl; external;
- function ldap_msgfree(
- lm : PLDAPMessage
- ): cint; cdecl; external;
- function ldap_msgdelete(
- ld : PLDAP;
- msgid : cint
- ): cint; cdecl; external;
- (*
- * in search.c:
- *)
- function ldap_search_ext(
- ld : PLDAP;
- const base : pcchar;
- scope : cint;
- const filter : pcchar;
- attrs : ppcchar;
- attrsonly : cbool;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- timout : ptimeval;
- sizelimit : cint;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_search_ext_s(
- ld : PLDAP;
- const base : pcchar;
- scope : cint;
- const filter : pcchar;
- attrs : ppcchar;
- attrsonly : cbool;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl;
- timout : ptimeval;
- sizelimit : cint;
- var res : PLDAPMessage
- ): cint; cdecl; external;
- (*
- * in unbind.c
- *)
- function ldap_unbind_ext(
- ld : PLDAP;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- function ldap_unbind_ext_s(
- ld : PLDAP;
- serverctrls : PPLDAPControl;
- clientctrls : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * in filter.c
- *)
- function ldap_put_vrFilter(
- ber : PBerElement;
- const vrf : pcchar
- ): cint; cdecl; external;
- (*
- * in free.c
- *)
- function ldap_memalloc(
- s : ber_len_t
- ): Pointer; cdecl; external;
- function ldap_memrealloc(
- p : Pointer;
- s : ber_len_t
- ): Pointer; cdecl; external;
- function ldap_memcalloc(
- n : ber_len_t;
- s : ber_len_t
- ): Pointer; cdecl; external;
- procedure ldap_memfree(
- p : Pointer
- ); cdecl; external;
- procedure ldap_memvfree(
- v : PPointer
- ); cdecl; external;
- function ldap_strdup(
- const str : pcchar
- ): pcchar; cdecl; external;
- procedure ldap_mods_free(
- mods : PPLDAPMod;
- freemods : cbool
- ); cdecl; external;
- (*
- * in url.c
- *)
- function ldap_is_ldap_url(
- const url : pcchar
- ): cint; cdecl; external;
- function ldap_is_ldaps_url(
- const url : pcchar
- ): cint; cdecl; external;
- function ldap_is_ldapi_url(
- const url : pcchar
- ): cint; cdecl; external;
- function ldap_url_parse(
- const url : pcchar;
- var ludpp : PLDAPURLDesc
- ): cint; cdecl; external;
- function ldap_url_desc2str(
- ludpp : PLDAPURLDesc
- ): pcchar; cdecl; external;
- procedure ldap_free_urldesc(
- ludpp : PLDAPURLDesc
- ); cdecl; external;
- (*
- * LDAP Cancel Extended Operation <draft-zeilenga-ldap-cancel-xx.txt>
- * in cancel.c
- *)
- const
- LDAP_API_FEATURE_CANCEL = 1000;
- function ldap_cancel(
- ld : PLDAP;
- cancelid : cint;
- sctrl : PPLDAPControl;
- cctrl : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_cancel_s(
- ld : PLDAP;
- cancelid : cint;
- sctrl : PPLDAPControl;
- cctrl : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * LDAP Server Side Sort
- * in sortctrl.c
- *)
- const
- LDAP_API_FEATURE_SERVER_SIDE_SORT = 1000;
- (* structure for a sort-key *)
- type
- PPLDAPSortKey = ^PLDAPSortKey;
- PLDAPSortKey = ^LDAPSortKey;
- LDAPSortKey = record
- attributeType : pcchar;
- orderingRule : pcchar;
- reverseOrder : cbool;
- end;
- function ldap_create_sort_keylist(
- var sortKeyList : PPLDAPSortKey;
- keyString : pcchar
- ): cint; cdecl; external;
- procedure ldap_free_sort_keylist(
- sortKeyList : PPLDAPSortKey
- ); cdecl; external;
- function ldap_create_sort_control(
- ld : PLDAP;
- keyList : PPLDAPSortKey;
- ctl_iscritical : cbool;
- var ctrlp : PLDAPControl
- ): cint; cdecl; external;
- function ldap_parse_sort_control(
- ld : PLDAP;
- ctrlp : PPLDAPControl;
- var result : culong;
- var attribute : pcchar
- ): cint; cdecl; external;
- (*
- * LDAP Virtual List View
- * in vlvctrl.c
- *)
- const
- LDAP_API_FEATURE_VIRTUAL_LIST_VIEW = 1000;
- (* structure for virtual list *)
- type
- PLDAPVLVInfo = ^LDAPVLVInfo;
- LDAPVLVInfo = record
- ldvlv_version : cint;
- ldvlv_before_count : culong;
- ldvlv_after_count : culong;
- ldvlv_offset : culong;
- ldvlv_count : culong;
- ldvlv_attrvalue : PBerval;
- ldvlv_context : PBerval;
- ldvlv_extradata : Pointer;
- end;
- function ldap_create_vlv_control(
- ld : PLDAP;
- ldvlistp : PLDAPVLVInfo;
- var ctrlp : PLDAPControl
- ): cint; cdecl; external;
- function ldap_parse_vlv_control(
- ld : PLDAP;
- ctrls : PPLDAPControl;
- var target_posp : culong;
- var list_countp : culong;
- var contextp : PBerval;
- var errcodep : cint
- ): cint; cdecl; external;
- (*
- * LDAP Transactions
- * in txn.c
- *)
- (*
- #ifdef LDAP_GROUP_TRANSACTION
- LDAP_F( int )
- ldap_parse_txn_create LDAP_P((
- LDAP *ld,
- LDAPMessage *res,
- struct berval **cookie ));
- LDAP_F( int )
- ldap_txn_create LDAP_P((
- LDAP *ld,
- LDAPControl **sctrls,
- LDAPControl **cctrls,
- int *msgidp ));
- LDAP_F( int )
- ldap_txn_create_s LDAP_P((
- LDAP *ld,
- struct berval **cookie,
- LDAPControl **sctrls,
- LDAPControl **cctrls ));
- LDAP_F( int )
- ldap_txn_end LDAP_P((
- LDAP *ld,
- struct berval *cookie,
- int commit,
- LDAPControl **sctrls,
- LDAPControl **cctrls,
- int *msgidp ));
- LDAP_F( int )
- ldap_txn_end_s LDAP_P((
- LDAP *ld,
- struct berval *cookie,
- int commit,
- LDAPControl **sctrls,
- LDAPControl **cctrls ));
- #endif*)
- (*
- * LDAP Who Am I?
- * in whoami.c
- *)
- const
- LDAP_API_FEATURE_WHOAMI = 1000;
- function ldap_parse_whoami(
- ld : PLDAP;
- res : PLDAPMessage;
- var authzid : PBerval
- ): cint; cdecl; external;
- function ldap_whoami(
- ld : PLDAP;
- sctrl : PPLDAPControl;
- cctrl : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_whoami_s(
- ld : PLDAP;
- var authzid : PBerval;
- sctrl : PPLDAPControl;
- cctrl : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * LDAP Password Modify
- * in passwd.c
- *)
- const
- LDAP_API_FEATURE_PASSWD_MODIFY = 1000;
- function ldap_parse_passwd(
- ld : PLDAP;
- res : PLDAPMessage;
- newpasswd : PBerval
- ): cint; cdecl; external;
- function ldap_passwd(
- ld : PLDAP;
- user : PBerval;
- oldpw : PBerval;
- newpw : PBerval;
- sctrl : PPLDAPControl;
- cctrl : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_passwd_s(
- ld : PLDAP;
- user : PBerval;
- oldpw : PBerval;
- newpw : PBerval;
- newpasswd : PBerval;
- sctrl : PPLDAPControl;
- cctrl : PPLDAPControl
- ): cint; cdecl; external;
- (*
- * LDAP Password Policy controls
- * in ppolicy.c
- *)
- (*
- #ifdef LDAP_CONTROL_PASSWORDPOLICYREQUEST
- #define LDAP_API_FEATURE_PASSWORD_POLICY 1000
- typedef enum passpolicyerror_enum {
- PP_passwordExpired = 0,
- PP_accountLocked = 1,
- PP_changeAfterReset = 2,
- PP_passwordModNotAllowed = 3,
- PP_mustSupplyOldPassword = 4,
- PP_insufficientPasswordQuality = 5,
- PP_passwordTooShort = 6,
- PP_passwordTooYoung = 7,
- PP_passwordInHistory = 8,
- PP_noError = 65535
- } LDAPPasswordPolicyError;
- LDAP_F( int )
- ldap_create_passwordpolicy_control LDAP_P((
- LDAP *ld,
- LDAPControl **ctrlp ));
- LDAP_F( int )
- ldap_parse_passwordpolicy_control LDAP_P((
- LDAP *ld,
- LDAPControl *ctrl,
- int *expirep,
- int *gracep,
- LDAPPasswordPolicyError *errorp ));
- LDAP_F( const cchar * )
- ldap_passwordpolicy_err2txt LDAP_P(( LDAPPasswordPolicyError ));
- #endif*)
- (*
- * hacks for NTLM
- *)
- const
- LDAP_AUTH_NTLM_REQUEST = ber_tag_t($8a);
- LDAP_AUTH_NTLM_RESPONSE = ber_tag_t($8b);
- function ldap_ntlm_bind(
- ld : PLDAP;
- const dn : pcchar;
- tag : ber_tag_t;
- cred : PBerval;
- sctrl : PPLDAPControl;
- cctrl : PPLDAPControl;
- var msgidp : cint
- ): cint; cdecl; external;
- function ldap_parse_ntlm_bind_result(
- ld : PLDAP;
- res : PLDAPMessage;
- challenge : PBerval
- ): cint; cdecl; external;