X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldap.h;h=911c4e91804403d8095f68617fa008ff3db85c18;hb=65f9a005ede921fca3737bfc6d4cb1ba0dd907e4;hp=e1e6f010ccef87d81f5a8262f48be4bced61af4e;hpb=e5ebc553ac1fc7adf6fdea9a3b8918967eba2231;p=openldap diff --git a/include/ldap.h b/include/ldap.h index e1e6f010cc..911c4e9180 100644 --- a/include/ldap.h +++ b/include/ldap.h @@ -174,6 +174,11 @@ typedef struct ldapcontrol { /* Experimental Controls */ +#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 @@ -371,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 @@ -384,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. @@ -536,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(( @@ -606,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: @@ -934,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, @@ -1002,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 )); @@ -1021,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 )); @@ -1492,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 )); @@ -1523,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, @@ -1553,6 +1551,75 @@ ldap_url_search_st LDAP_P(( struct timeval *timeout, LDAPMessage **res )); -LDAP_END_DECL +/* + * in sortctrl.c + */ +/* + * structure for a sort-key + */ +typedef struct ldapsortkey { + char * attributeType; + char * orderingRule; + int reverseOrder; +} LDAPSortKey; + +LIBLDAP_F( int ) +ldap_create_sort_keylist LDAP_P(( + LDAPSortKey ***sortKeyList, + char *keyString )); + +LIBLDAP_F( void ) +ldap_free_sort_keylist LDAP_P(( + LDAPSortKey **sortkeylist )); + +LIBLDAP_F( int ) +ldap_create_sort_control LDAP_P(( + LDAP *ld, + LDAPSortKey **keyList, + int ctl_iscritical, + LDAPControl **ctrlp )); + +LIBLDAP_F( int ) +ldap_parse_sort_control LDAP_P(( + LDAP *ld, + LDAPControl **ctrlp, + unsigned long *result, + char **attribute )); + + +/* + * 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 */