mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-24 13:24:56 +08:00
Return more appropriate result codes than LDAP_UNAVAILABLE
upon failures.
This commit is contained in:
parent
a3dc67b814
commit
b7b9148c7f
@ -404,7 +404,7 @@ ldap_int_sasl_open(
|
||||
assert( lc->lconn_sasl_ctx == NULL );
|
||||
|
||||
if ( host == NULL ) {
|
||||
ld->ld_errno = LDAP_UNAVAILABLE;
|
||||
ld->ld_errno = LDAP_LOCAL_ERROR;
|
||||
return ld->ld_errno;
|
||||
}
|
||||
|
||||
@ -483,13 +483,15 @@ ldap_int_sasl_bind(
|
||||
|
||||
if ( sd == AC_SOCKET_INVALID ) {
|
||||
/* not connected yet */
|
||||
int rc = ldap_open_defconn( ld );
|
||||
|
||||
int rc;
|
||||
|
||||
rc = ldap_open_defconn( ld );
|
||||
if( rc < 0 ) return ld->ld_errno;
|
||||
|
||||
ber_sockbuf_ctrl( ld->ld_sb, LBER_SB_OPT_GET_FD, &sd );
|
||||
|
||||
if( sd == AC_SOCKET_INVALID ) {
|
||||
ld->ld_errno = LDAP_UNAVAILABLE;
|
||||
ld->ld_errno = LDAP_LOCAL_ERROR;
|
||||
return ld->ld_errno;
|
||||
}
|
||||
}
|
||||
@ -497,7 +499,7 @@ ldap_int_sasl_bind(
|
||||
ctx = ld->ld_defconn->lconn_sasl_ctx;
|
||||
|
||||
if( ctx == NULL ) {
|
||||
ld->ld_errno = LDAP_UNAVAILABLE;
|
||||
ld->ld_errno = LDAP_LOCAL_ERROR;
|
||||
return ld->ld_errno;
|
||||
}
|
||||
|
||||
|
@ -366,24 +366,25 @@ ldap_pvt_sasl_getmechs ( LDAP *ld, char **pmechlist )
|
||||
|
||||
e = ldap_first_entry( ld, res );
|
||||
if ( e == NULL ) {
|
||||
ldap_msgfree( res );
|
||||
if ( ld->ld_errno == LDAP_SUCCESS ) {
|
||||
ld->ld_errno = LDAP_UNAVAILABLE;
|
||||
ld->ld_errno = LDAP_NO_SUCH_OBJECT;
|
||||
}
|
||||
return ld->ld_errno;
|
||||
}
|
||||
|
||||
values = ldap_get_values( ld, e, "supportedSASLMechanisms" );
|
||||
if ( values == NULL ) {
|
||||
ld->ld_errno = LDAP_NO_SUCH_ATTRIBUTE;
|
||||
ldap_msgfree( res );
|
||||
ld->ld_errno = LDAP_NO_SUCH_ATTRIBUTE;
|
||||
return ld->ld_errno;
|
||||
}
|
||||
|
||||
mechlist = ldap_charray2str( values, " " );
|
||||
if ( mechlist == NULL ) {
|
||||
ld->ld_errno = LDAP_NO_MEMORY;
|
||||
LDAP_VFREE( values );
|
||||
ldap_msgfree( res );
|
||||
ld->ld_errno = LDAP_NO_MEMORY;
|
||||
return ld->ld_errno;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user