#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"
#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
#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.
*/
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;
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 */
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((
* 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:
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,
* 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 ));
LDAP_CONST char *url ));
LIBLDAP_F( int )
-ldap_start_tls LDAP_P((
+ldap_start_tls_s LDAP_P((
LDAP *ld,
LDAPControl **serverctrls,
LDAPControl **clientctrls ));
/*
* 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 ));
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,
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 */