X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldap.h;h=911c4e91804403d8095f68617fa008ff3db85c18;hb=65f9a005ede921fca3737bfc6d4cb1ba0dd907e4;hp=09595d90343cd76cb983dd08db46b4ff1402f415;hpb=1aa4b07c98f79d875c511d812b7f822f8edc8a4f;p=openldap diff --git a/include/ldap.h b/include/ldap.h index 09595d9034..911c4e9180 100644 --- a/include/ldap.h +++ b/include/ldap.h @@ -173,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" @@ -373,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 @@ -386,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. @@ -493,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; @@ -504,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 */ @@ -547,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(( @@ -617,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: @@ -945,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, @@ -1013,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 )); @@ -1032,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 )); @@ -1503,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 )); @@ -1534,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, @@ -1564,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 */