Commit a52ffbb9 authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

Sync with HEAD

parent fee2157f
......@@ -410,10 +410,13 @@ ldap_int_destroy_global_options(void)
WSACleanup( );
#endif
#if defined(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND) \
|| defined(HAVE_TLS) || defined(HAVE_CYRUS_SASL)
if ( ldap_int_hostname ) {
LDAP_FREE( ldap_int_hostname );
ldap_int_hostname = NULL;
}
#endif
}
/*
......
......@@ -503,9 +503,9 @@ BackendInfo* backend_info(const char *type)
BackendDB *
backend_db_init(
const char *type )
const char *type,
BackendDB *be )
{
Backend *be;
BackendInfo *bi = backend_info(type);
int rc = 0;
......@@ -514,9 +514,14 @@ backend_db_init(
return NULL;
}
be = ch_calloc( 1, sizeof(Backend) );
nbackends++;
LDAP_STAILQ_INSERT_TAIL(&backendDB, be, be_next);
/* If be is provided, treat it as private. Otherwise allocate
* one and add it to the global list.
*/
if ( !be ) {
be = ch_calloc( 1, sizeof(Backend) );
nbackends++;
LDAP_STAILQ_INSERT_TAIL(&backendDB, be, be_next);
}
be->bd_info = bi;
......
......@@ -1039,7 +1039,7 @@ config_generic(ConfigArgs *c) {
} else if ( !strcasecmp( c->argv[1], "frontend" )) {
c->be = frontendDB;
} else {
c->be = backend_db_init(c->argv[1]);
c->be = backend_db_init(c->argv[1], NULL);
if ( !c->be ) {
snprintf( c->msg, sizeof( c->msg ), "<%s> failed init", c->argv[0] );
Debug(LDAP_DEBUG_ANY, "%s: %s (%s)!\n",
......@@ -2770,10 +2770,8 @@ config_setup_ldif( BackendDB *be, const char *dir, int readit ) {
if ( !cfb->cb_db.bd_info )
return 0; /* FIXME: eventually this will be a fatal error */
if ( cfb->cb_db.bd_info->bi_db_init( &cfb->cb_db )) return 1;
/* Mark that back-ldif type is in use */
cfb->cb_db.bd_info->bi_nDB++;
if ( backend_db_init( "ldif", &cfb->cb_db ) == NULL )
return 1;
cfb->cb_db.be_suffix = be->be_suffix;
cfb->cb_db.be_nsuffix = be->be_nsuffix;
......@@ -2880,7 +2878,7 @@ read_config(const char *fname, const char *dir) {
int rc;
/* Setup the config backend */
be = backend_db_init( "config" );
be = backend_db_init( "config", NULL );
if ( !be )
return 1;
......
......@@ -1799,21 +1799,11 @@ pc_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s\n", c->log, c->msg, 0 );
return( 1 );
}
cm->db.bd_info = backend_info( c->argv[1] );
if ( !cm->db.bd_info ) {
if ( !backend_db_init( c->argv[1], &cm->db )) {
sprintf( c->msg, "unknown backend type" );
Debug( LDAP_DEBUG_ANY, "%s: %s\n", c->log, c->msg, 0 );
return( 1 );
}
if ( cm->db.bd_info->bi_db_init( &cm->db ) ) {
sprintf( c->msg, "backend %s init failed", c->argv[1] );
Debug( LDAP_DEBUG_ANY, "%s: %s\n", c->log, c->msg, 0 );
return( 1 );
}
/* This type is in use, needs to be opened */
cm->db.bd_info->bi_nDB++;
cm->max_entries = atoi( c->argv[2] );
cm->num_entries_limit = atoi( c->argv[4] );
......
......@@ -321,7 +321,8 @@ LDAP_SLAPD_F (int) backend_destroy LDAP_P((void));
LDAP_SLAPD_F (void) backend_destroy_one LDAP_P((BackendDB *bd, int dynamic));
LDAP_SLAPD_F (BackendInfo *) backend_info LDAP_P(( const char *type ));
LDAP_SLAPD_F (BackendDB *) backend_db_init LDAP_P(( const char *type ));
LDAP_SLAPD_F (BackendDB *) backend_db_init LDAP_P(( const char *type,
BackendDB *be ));
LDAP_SLAPD_F (BackendDB *) select_backend LDAP_P((
struct berval * dn,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment