]> granicus.if.org Git - apache/commitdiff
Try to obtain the specific LDAP error code returned during a failed
authorEric Covener <covener@apache.org>
Wed, 10 Aug 2011 02:06:52 +0000 (02:06 +0000)
committerEric Covener <covener@apache.org>
Wed, 10 Aug 2011 02:06:52 +0000 (02:06 +0000)
ldap_simple_bind().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1156001 13f79535-47bb-0310-9956-ffa450edef68

modules/ldap/util_ldap.c

index e4b9d6fcd044ebafc3e3d0c1e734ded1397d0fc3..5a865b647caefb2856f4b6d58ea551b4394660a9 100644 (file)
@@ -459,7 +459,14 @@ static int uldap_simple_bind(util_ldap_connection_t *ldc, char *binddn,
     int rc;
     int msgid = ldap_simple_bind(ldc->ldap, binddn, bindpw);
     if (msgid == -1) {
+        int ldaprc;
         ldc->reason = "LDAP: ldap_simple_bind() failed";
+#ifdef LDAP_OPT_ERROR_NUMBER
+        if (LDAP_SUCCESS == ldap_get_option(ldc->ldap, LDAP_OPT_ERROR_NUMBER, &ldaprc)) return ldaprc;
+#endif
+#ifdef LDAP_OPT_RESULT_CODE
+        if (LDAP_SUCCESS == ldap_get_option(ldc->ldap, LDAP_OPT_RESULT_CODE, &ldaprc)) return ldaprc;
+#endif
         /* -1 is LDAP_SERVER_DOWN in openldap, use something else */
         return LDAP_OTHER;
     }