X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldap.h;h=911c4e91804403d8095f68617fa008ff3db85c18;hb=65f9a005ede921fca3737bfc6d4cb1ba0dd907e4;hp=fee3e0035910437122bbf6937e66cf642839cf9b;hpb=a26cef7fc89d8ec84552edf6c07af88844651b47;p=openldap diff --git a/include/ldap.h b/include/ldap.h index fee3e00359..911c4e9180 100644 --- a/include/ldap.h +++ b/include/ldap.h @@ -44,7 +44,7 @@ LDAP_BEGIN_DECL #define LDAP_API_VERSION 2004 #define LDAP_VENDOR_NAME "OpenLDAP" /* We'll eventually release as 200 */ -#define LDAP_VENDOR_VERSION 194 +#define LDAP_VENDOR_VERSION 19905 /* OpenLDAP API Features */ #define LDAP_API_FEATURE_X_OPENLDAP LDAP_VENDOR_VERSION @@ -105,8 +105,6 @@ LDAP_BEGIN_DECL #define LDAP_OPT_PRIVATE_EXTENSION_BASE 0x4000 /* to 0x7FFF inclusive */ /* private and experimental options */ -#define LDAP_OPT_DNS 0x4001 /* use DN & DNS */ - /* OpenLDAP specific options */ #define LDAP_OPT_DEBUG_LEVEL 0x5001 /* debug level */ #define LDAP_OPT_TIMEOUT 0x5002 /* default timeout */ @@ -175,13 +173,16 @@ typedef struct ldapcontrol { #define LDAP_CONTROL_MANAGEDSAIT "2.16.840.1.113730.3.4.2" /* Experimental Controls */ -#define LDAP_CONTROL_X_MODIFY_PASSWD "1.3.6.1.4.1.4203.666.5.1" + +#define LDAP_CONTROL_SORTREQUEST "1.2.840.113556.1.4.473" +#define LDAP_CONTROL_SORTRESPONSE "1.2.840.113556.1.4.474" +#define LDAP_CONTROL_VLVREQUEST "2.16.840.1.113730.3.4.9" +#define LDAP_CONTROL_VLVRESPONSE "2.16.840.1.113730.3.4.10" /* LDAP Unsolicited Notifications */ #define LDAP_NOTICE_OF_DISCONNECTION "1.3.6.1.4.1.1466.20036" #define LDAP_NOTICE_DISCONNECT LDAP_NOTICE_OF_DISCONNECTION - /* LDAP Extended Operations */ #define LDAP_EXOP_START_TLS "1.3.6.1.4.1.1466.20037" @@ -375,7 +376,7 @@ typedef struct ldapcontrol { #define LDAP_OTHER 0x50 -#define LDAP_API_ERROR(n) LDAP_RANGE((n),0x51,0xff) /* 81+ */ +#define LDAP_API_ERROR(n) LDAP_RANGE((n),0x51,0x61) /* 81-97 */ #define LDAP_SERVER_DOWN 0x51 #define LDAP_LOCAL_ERROR 0x52 @@ -388,13 +389,14 @@ typedef struct ldapcontrol { #define LDAP_PARAM_ERROR 0x59 #define LDAP_NO_MEMORY 0x5a -#define LDAP_CONNECT_ERROR 0x5b /* new */ -#define LDAP_NOT_SUPPORTED 0x5c /* new */ -#define LDAP_CONTROL_NOT_FOUND 0x5d /* new */ -#define LDAP_NO_RESULTS_RETURNED 0x5e /* new */ -#define LDAP_MORE_RESULTS_TO_RETURN 0x5f /* new */ -#define LDAP_CLIENT_LOOP 0x60 /* new */ -#define LDAP_REFERRAL_LIMIT_EXCEEDED 0x61 /* new */ +/* not technically reserved for APIs */ +#define LDAP_CONNECT_ERROR 0x5b /* draft-ietf-ldap-c-api-xx */ +#define LDAP_NOT_SUPPORTED 0x5c /* draft-ietf-ldap-c-api-xx */ +#define LDAP_CONTROL_NOT_FOUND 0x5d /* draft-ietf-ldap-c-api-xx */ +#define LDAP_NO_RESULTS_RETURNED 0x5e /* draft-ietf-ldap-c-api-xx */ +#define LDAP_MORE_RESULTS_TO_RETURN 0x5f /* draft-ietf-ldap-c-api-xx */ +#define LDAP_CLIENT_LOOP 0x60 /* draft-ietf-ldap-c-api-xx */ +#define LDAP_REFERRAL_LIMIT_EXCEEDED 0x61 /* draft-ietf-ldap-c-api-xx */ /* * This structure represents both ldap messages and ldap responses. @@ -495,8 +497,7 @@ typedef struct ldap_friendly { */ typedef struct ldap_url_desc { struct ldap_url_desc *lud_next; - unsigned long lud_properties; - int lud_protocol; + char *lud_scheme; char *lud_host; int lud_port; char *lud_dn; @@ -506,19 +507,11 @@ typedef struct ldap_url_desc { char **lud_exts; } LDAPURLDesc; -/* lud_properties */ -#define LDAP_URL_USE_SSL 0x00000001 - -/* lud_protocol */ -#define LDAP_PROTO_TCP 0x00 -#define LDAP_PROTO_UDP 0x01 -#define LDAP_PROTO_LOCAL 0x02 - #define LDAP_URL_SUCCESS 0x00 /* Success */ #define LDAP_URL_ERR_MEM 0x01 /* can't allocate memory space */ #define LDAP_URL_ERR_PARAM 0x02 /* parameter is bad */ -#define LDAP_URL_ERR_NOTLDAP 0x03 /* URL doesn't begin with "ldap[s]://" */ +#define LDAP_URL_ERR_BADSCHEME 0x03 /* URL doesn't begin with "ldap[si]://" */ #define LDAP_URL_ERR_BADENCLOSURE 0x04 /* URL is missing trailing ">" */ #define LDAP_URL_ERR_BADURL 0x05 /* URL is bad */ #define LDAP_URL_ERR_BADHOST 0x06 /* host port is bad */ @@ -549,7 +542,8 @@ ldap_set_option LDAP_P(( LDAP_CONST void *invalue)); /* V3 REBIND Function Callback Prototype */ -typedef int (LDAP_REBIND_PROC) ( LDAP *ld, LDAP_CONST char *url, int request, ber_int_t msgid); +typedef int (LDAP_REBIND_PROC) LDAP_P(( + LDAP *ld, LDAP_CONST char *url, int request, ber_int_t msgid )); LIBLDAP_F( int ) ldap_set_rebind_proc LDAP_P(( @@ -619,17 +613,17 @@ ldap_parse_extended_result LDAP_P(( * in abandon.c: */ LIBLDAP_F( int ) -ldap_abandon LDAP_P(( /* deprecated */ - LDAP *ld, - int msgid )); - -LIBLDAP_F( int ) ldap_abandon_ext LDAP_P(( LDAP *ld, int msgid, LDAPControl **serverctrls, LDAPControl **clientctrls )); +LIBLDAP_F( int ) +ldap_abandon LDAP_P(( /* deprecated */ + LDAP *ld, + int msgid )); + /* * in add.c: @@ -723,17 +717,6 @@ ldap_bind_s LDAP_P(( /* deprecated */ LDAP_CONST char *cred, int authmethod )); -LIBLDAP_F( void ) -ldap_set_rebind_proc LDAP_P(( /* deprecated */ - LDAP *ld, - int (*rebindproc) LDAP_P(( - LDAP *ld, - char **dnp, - char **passwdp, - int *authmethodp, - int freeit )))); - - /* * in sbind.c: */ @@ -958,27 +941,6 @@ ldap_rename_s LDAP_P(( LDAPControl **sctrls, LDAPControl **cctrls )); -LIBLDAP_F( int ) -ldap_rename_ext LDAP_P(( - LDAP *ld, - LDAP_CONST char *dn, - LDAP_CONST char *newrdn, - LDAP_CONST char *newparent, - int deleteoldrdn, - LDAPControl **serverctrls, - LDAPControl **clientctrls, - int *msgidp )); - -LIBLDAP_F( int ) -ldap_rename_ext_s LDAP_P(( - LDAP *ld, - LDAP_CONST char *dn, - LDAP_CONST char *newrdn, - LDAP_CONST char *newparent, - int deleteoldrdn, - LDAPControl **serverctrls, - LDAPControl **clientctrls )); - LIBLDAP_F( int ) ldap_rename2 LDAP_P(( /* deprecated */ LDAP *ld, @@ -1026,12 +988,12 @@ ldap_modrdn2_s LDAP_P(( /* deprecated */ * in open.c: */ LIBLDAP_F( LDAP *) -ldap_open LDAP_P(( /* deprecated */ +ldap_init LDAP_P(( LDAP_CONST char *host, int port )); LIBLDAP_F( LDAP *) -ldap_init LDAP_P(( +ldap_open LDAP_P(( /* deprecated */ LDAP_CONST char *host, int port )); @@ -1045,7 +1007,7 @@ ldap_initialize LDAP_P(( LDAP_CONST char *url )); LIBLDAP_F( int ) -ldap_start_tls LDAP_P(( +ldap_start_tls_s LDAP_P(( LDAP *ld, LDAPControl **serverctrls, LDAPControl **clientctrls )); @@ -1169,14 +1131,6 @@ LIBLDAP_F( char * ) ldap_normalize_dn LDAP_P(( LDAP_CONST char *dn )); -LIBLDAP_F( char ** ) -ldap_explode_dns LDAP_P(( /* deprecated */ - LDAP_CONST char *dn )); - -LIBLDAP_F( int ) -ldap_is_dns_dn LDAP_P(( /* deprecated */ - LDAP_CONST char *dn )); - LIBLDAP_F( char * ) ldap_dn2dcedn LDAP_P(( LDAP_CONST char *dn )); /* deprecated */ @@ -1524,19 +1478,27 @@ cldap_setretryinfo LDAP_P(( /* deprecated */ /* * in sort.c */ +typedef int (LDAP_SORT_AD_CMP_PROC) LDAP_P(( + LDAP_CONST char *left, + LDAP_CONST char *right )); + +typedef int (LDAP_SORT_AV_CMP_PROC) LDAP_P(( + LDAP_CONST void *left, + LDAP_CONST void *right )); + LIBLDAP_F( int ) ldap_sort_entries LDAP_P(( LDAP *ld, LDAPMessage **chain, LDAP_CONST char *attr, - int (*cmp) (LDAP_CONST char *, LDAP_CONST char *) )); + LDAP_SORT_AD_CMP_PROC *cmp )); -LIBLDAP_F( int ) +LIBLDAP_F( int ) /* deprecated */ ldap_sort_values LDAP_P(( LDAP *ld, char **vals, - int (*cmp) (LDAP_CONST void *, LDAP_CONST void *) )); + LDAP_SORT_AV_CMP_PROC *cmp )); -LIBLDAP_F( int ) +LIBLDAP_F( int ) /* deprecated */ ldap_sort_strcasecmp LDAP_P(( LDAP_CONST void *a, LDAP_CONST void *b )); @@ -1555,6 +1517,10 @@ LIBLDAP_F( int ) ldap_is_ldaps_url LDAP_P(( LDAP_CONST char *url )); +LIBLDAP_F( int ) +ldap_is_ldapi_url LDAP_P(( + LDAP_CONST char *url )); + LIBLDAP_F( int ) ldap_url_parse LDAP_P(( LDAP_CONST char *url, @@ -1585,49 +1551,75 @@ ldap_url_search_st LDAP_P(( struct timeval *timeout, LDAPMessage **res )); - +/* + * in sortctrl.c + */ /* - * in charset.c - * DEPRECATED + * structure for a sort-key */ -LIBLDAP_F( void ) -ldap_set_string_translators LDAP_P(( - LDAP *ld, - BERTranslateProc encode_proc, - BERTranslateProc decode_proc )); +typedef struct ldapsortkey { + char * attributeType; + char * orderingRule; + int reverseOrder; +} LDAPSortKey; LIBLDAP_F( int ) -ldap_translate_from_t61 LDAP_P(( - LDAP *ld, - char **bufp, - ber_len_t *lenp, - int free_input )); - -LIBLDAP_F( int ) -ldap_translate_to_t61 LDAP_P(( - LDAP *ld, - char **bufp, - ber_len_t *lenp, - int free_input )); +ldap_create_sort_keylist LDAP_P(( + LDAPSortKey ***sortKeyList, + char *keyString )); LIBLDAP_F( void ) -ldap_enable_translation LDAP_P(( - LDAP *ld, - LDAPMessage *entry, - int enable )); +ldap_free_sort_keylist LDAP_P(( + LDAPSortKey **sortkeylist )); LIBLDAP_F( int ) -ldap_t61_to_8859 LDAP_P(( - char **bufp, - ber_len_t *buflenp, - int free_input )); +ldap_create_sort_control LDAP_P(( + LDAP *ld, + LDAPSortKey **keyList, + int ctl_iscritical, + LDAPControl **ctrlp )); LIBLDAP_F( int ) -ldap_8859_to_t61 LDAP_P(( - char **bufp, - ber_len_t *buflenp, - int free_input )); +ldap_parse_sort_control LDAP_P(( + LDAP *ld, + LDAPControl **ctrlp, + unsigned long *result, + char **attribute )); -LDAP_END_DECL +/* + * in vlvctrl.c + */ + +/* + * structure for virtul list. + */ +typedef struct ldapvlvinfo { + int ldvlv_version; + unsigned long ldvlv_before_count; + unsigned long ldvlv_after_count; + unsigned long ldvlv_offset; + unsigned long ldvlv_count; + struct berval *ldvlv_attrvalue; + struct berval *ldvlv_context; + void *ldvlv_extradata; +} LDAPVLVInfo; + +LIBLDAP_F( int ) +ldap_create_vlv_control LDAP_P(( + LDAP *ld, + LDAPVLVInfo *ldvlistp, + LDAPControl **ctrlp )); + +LIBLDAP_F( int ) +ldap_parse_vlv_control LDAP_P(( + LDAP *ld, + LDAPControl **ctrls, + unsigned long *target_posp, + unsigned long *list_countp, + struct berval **contextp, + int *errcodep )); + + +LDAP_END_DECL #endif /* _LDAP_H */