mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-06 15:10:22 -05:00
ITS#8648 init SASL library in global init
This commit is contained in:
parent
e437b12277
commit
431c4af526
2 changed files with 9 additions and 14 deletions
|
|
@ -69,11 +69,11 @@ static const sasl_callback_t client_callbacks[] = {
|
|||
{ SASL_CB_LIST_END, NULL, NULL }
|
||||
};
|
||||
|
||||
/*
|
||||
* ldap_int_initialize is responsible for calling this only once.
|
||||
*/
|
||||
int ldap_int_sasl_init( void )
|
||||
{
|
||||
/* XXX not threadsafe */
|
||||
static int sasl_initialized = 0;
|
||||
|
||||
#ifdef HAVE_SASL_VERSION
|
||||
/* stringify the version number, sasl.h doesn't do it for us */
|
||||
#define VSTR0(maj, min, pat) #maj "." #min "." #pat
|
||||
|
|
@ -96,9 +96,6 @@ int ldap_int_sasl_init( void )
|
|||
}
|
||||
}
|
||||
#endif
|
||||
if ( sasl_initialized ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* SASL 2 takes care of its own memory completely internally */
|
||||
#if SASL_VERSION_MAJOR < 2 && !defined(CSRIMALLOC)
|
||||
|
|
@ -118,7 +115,6 @@ int ldap_int_sasl_init( void )
|
|||
#endif
|
||||
|
||||
if ( sasl_client_init( NULL ) == SASL_OK ) {
|
||||
sasl_initialized = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -329,11 +325,6 @@ ldap_int_sasl_open(
|
|||
return ld->ld_errno;
|
||||
}
|
||||
|
||||
if ( ldap_int_sasl_init() ) {
|
||||
ld->ld_errno = LDAP_LOCAL_ERROR;
|
||||
return ld->ld_errno;
|
||||
}
|
||||
|
||||
#if SASL_VERSION_MAJOR >= 2
|
||||
rc = sasl_client_new( "ldap", host, NULL, NULL,
|
||||
client_callbacks, 0, &ctx );
|
||||
|
|
@ -936,8 +927,6 @@ int
|
|||
ldap_int_sasl_get_option( LDAP *ld, int option, void *arg )
|
||||
{
|
||||
if ( option == LDAP_OPT_X_SASL_MECHLIST ) {
|
||||
if ( ldap_int_sasl_init() )
|
||||
return -1;
|
||||
*(char ***)arg = (char **)sasl_global_listmech();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -662,6 +662,12 @@ void ldap_int_initialize( struct ldapoptions *gopts, int *dbglvl )
|
|||
if ( ldap_int_tblsize == 0 ) ldap_int_ip_init();
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
if ( ldap_int_sasl_init() != 0 ) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
ldap_int_initialize_global_options(gopts, dbglvl);
|
||||
|
||||
if( getenv("LDAPNOINIT") != NULL ) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue