#define LDAP_OPT_URI 0x5006
/* OpenLDAP TLS options */
-#define LDAP_OPT_X_TLS_CACERTFILE 0x6001
-#define LDAP_OPT_X_TLS_CACERTDIR 0x6002
-#define LDAP_OPT_X_TLS_CERT 0x6003
+#define LDAP_OPT_X_TLS 0x6000
+#define LDAP_OPT_X_TLS_CTX 0x6001 /* SSL CTX */
+#define LDAP_OPT_X_TLS_CACERTFILE 0x6002
+#define LDAP_OPT_X_TLS_CACERTDIR 0x6003
#define LDAP_OPT_X_TLS_CERTFILE 0x6004
#define LDAP_OPT_X_TLS_KEYFILE 0x6005
#define LDAP_OPT_X_TLS_REQUIRE_CERT 0x6006
-#define LDAP_OPT_X_TLS 0x6007
-#define LDAP_OPT_X_TLS_PROTOCOL 0x6008
-#define LDAP_OPT_X_TLS_CIPHER_SUITE 0x6009
-#define LDAP_OPT_X_TLS_RANDOM_FILE 0x600a
+#define LDAP_OPT_X_TLS_PROTOCOL 0x6007
+#define LDAP_OPT_X_TLS_CIPHER_SUITE 0x6008
+#define LDAP_OPT_X_TLS_RANDOM_FILE 0x6009
#define LDAP_OPT_X_TLS_NEVER 0
#define LDAP_OPT_X_TLS_HARD 1
} LDAPControl;
/* LDAP Controls */
- /* chase referrals controls */
+
+#ifdef undef
+ /* chase referrals client control (not yet implemented) */
#define LDAP_CONTROL_REFERRALS "1.2.840.113666.1.4.616"
#define LDAP_CHASE_SUBORDINATE_REFERRALS 0x0020U
#define LDAP_CHASE_EXTERNAL_REFERRALS 0x0040U
+#endif
#define LDAP_CONTROL_MANAGEDSAIT "2.16.840.1.113730.3.4.2"
#define LDAP_AUTH_METHOD_NOT_SUPPORTED 0x07
#define LDAP_STRONG_AUTH_NOT_SUPPORTED LDAP_AUTH_METHOD_NOT_SUPPORTED
#define LDAP_STRONG_AUTH_REQUIRED 0x08
-#define LDAP_PARTIAL_RESULTS 0x09 /* not listed in v3 */
+#define LDAP_PARTIAL_RESULTS 0x09 /* LDAPv2+ (not LDAPv3) */
#define LDAP_REFERRAL 0x0a /* LDAPv3 */
#define LDAP_ADMINLIMIT_EXCEEDED 0x0b /* LDAPv3 */
#define LDAP_OTHER 0x50
#define LDAP_API_ERROR(n) LDAP_RANGE((n),0x51,0x61) /* 81-97 */
+#define LDAP_API_RESULT(n) (((n) == LDAP_SUCCESS) || \
+ LDAP_RANGE((n),0x51,0x61)) /* 0,81-97 */
#define LDAP_SERVER_DOWN 0x51
#define LDAP_LOCAL_ERROR 0x52