]> git.sur5r.net Git - openldap/commitdiff
Additional error reporting for Cyrus SASL 2. Attempt to get SASL-EXTERNAL
authorHoward Chu <hyc@openldap.org>
Thu, 18 Apr 2002 00:48:36 +0000 (00:48 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 18 Apr 2002 00:48:36 +0000 (00:48 +0000)
working ifor Cyrus 2. (Both GSSAPI and EXTERNAL are broken at the moment.)

libraries/libldap/cyrus.c

index d14e893c058357e21e0bffac8a99350001a696cc..b411ad5cd82c14d511864793fd77f138b8b778a0 100644 (file)
@@ -619,6 +619,9 @@ ldap_int_sasl_bind(
 
        if ( (saslrc != SASL_OK) && (saslrc != SASL_CONTINUE) ) {
                ld->ld_errno = sasl_err2ldap( saslrc );
+#if SASL_VERSION_MAJOR >= 2
+               ld->ld_error = sasl_errdetail( ctx );
+#endif
                return ld->ld_errno;
        }
 
@@ -712,6 +715,9 @@ ldap_int_sasl_bind(
 
                if ( (saslrc != SASL_OK) && (saslrc != SASL_CONTINUE) ) {
                        ld->ld_errno = sasl_err2ldap( saslrc );
+#if SASL_VERSION_MAJOR >= 2
+                       ld->ld_error = sasl_errdetail( ctx );
+#endif
                        return ld->ld_errno;
                }
        } while ( rc == LDAP_SASL_BIND_IN_PROGRESS );
@@ -721,6 +727,9 @@ ldap_int_sasl_bind(
        }
 
        if ( saslrc != SASL_OK ) {
+#if SASL_VERSION_MAJOR >= 2
+               ld->ld_error = sasl_errdetail( ctx );
+#endif
                return ld->ld_errno = sasl_err2ldap( saslrc );
        }
 
@@ -779,6 +788,8 @@ ldap_int_sasl_external(
    
 #if SASL_VERSION_MAJOR >= 2
        sc = sasl_setprop( ctx, SASL_SSF_EXTERNAL, &ssf );
+       if ( sc == SASL_OK )
+               sc = sasl_setprop( ctx, SASL_AUTH_EXTERNAL, authid );
 #else
        memset( &extprops, '\0', sizeof(extprops) );
        extprops.ssf = ssf;