mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-01 14:15:49 +08:00
Remove Berkeley DB CDB support
This commit is contained in:
parent
97ed90544e
commit
e3f6433e1d
1
CHANGES
1
CHANGES
@ -6,6 +6,7 @@ OpenLDAP 2.0.16 Engineering
|
|||||||
Fixed slapd ManageDSAIT warning
|
Fixed slapd ManageDSAIT warning
|
||||||
Fixed slurpd server down reject fix (ITS#1183)
|
Fixed slurpd server down reject fix (ITS#1183)
|
||||||
Fixed -llber ber_realloc bug (ITS#1346)
|
Fixed -llber ber_realloc bug (ITS#1346)
|
||||||
|
Removed -lldbm use of Berkeley CDB
|
||||||
Build environment
|
Build environment
|
||||||
Updated slapd.conf with ACL example
|
Updated slapd.conf with ACL example
|
||||||
Updated pthread detection
|
Updated pthread detection
|
||||||
|
@ -333,12 +333,9 @@ AC_DEFUN([OL_BERKELEY_DB_THREAD],
|
|||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
u_int32_t flags = DB_CREATE | DB_INIT_CDB | DB_INIT_MPOOL |
|
u_int32_t flags = DB_CREATE |
|
||||||
#ifdef DB_PRIVATE
|
#ifdef DB_PRIVATE
|
||||||
DB_PRIVATE |
|
DB_PRIVATE |
|
||||||
#endif
|
|
||||||
#ifdef DB_MPOOL_PRIVATE
|
|
||||||
DB_MPOOL_PRIVATE |
|
|
||||||
#endif
|
#endif
|
||||||
DB_THREAD;
|
DB_THREAD;
|
||||||
|
|
||||||
@ -347,20 +344,16 @@ main()
|
|||||||
|
|
||||||
rc = db_env_create( &env, 0 );
|
rc = db_env_create( &env, 0 );
|
||||||
|
|
||||||
if( rc ) {
|
flags |= DB_INIT_MPOOL;
|
||||||
printf("BerkeleyDB: %s\n", db_strerror(rc) );
|
#ifdef DB_MPOOL_PRIVATE
|
||||||
return rc;
|
flags |= DB_MPOOL_PRIVATE;
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DB_CDB_ALLDB
|
|
||||||
rc = env->set_flags( env, DB_CDB_ALLDB, 1 );
|
|
||||||
|
|
||||||
if( rc ) {
|
|
||||||
printf("BerkeleyDB: %s\n", db_strerror(rc) );
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if( rc ) {
|
||||||
|
printf("BerkeleyDB: %s\n", db_strerror(rc) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
#if (DB_VERSION_MAJOR > 3) || (DB_VERSION_MINOR >= 1)
|
#if (DB_VERSION_MAJOR > 3) || (DB_VERSION_MINOR >= 1)
|
||||||
rc = env->open( env, NULL, flags, 0 );
|
rc = env->open( env, NULL, flags, 0 );
|
||||||
#else
|
#else
|
||||||
|
@ -35,7 +35,6 @@ ldbm_datum_free( LDBM ldbm, Datum data )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Datum
|
Datum
|
||||||
ldbm_datum_dup( LDBM ldbm, Datum data )
|
ldbm_datum_dup( LDBM ldbm, Datum data )
|
||||||
{
|
{
|
||||||
@ -60,7 +59,8 @@ ldbm_datum_dup( LDBM ldbm, Datum data )
|
|||||||
|
|
||||||
static int ldbm_initialized = 0;
|
static int ldbm_initialized = 0;
|
||||||
|
|
||||||
#ifdef HAVE_BERKELEY_DB_THREAD
|
#ifdef USE_BERKELEY_CDB
|
||||||
|
/* not currently supported */
|
||||||
#define LDBM_LOCK ((void) 0)
|
#define LDBM_LOCK ((void) 0)
|
||||||
#define LDBM_UNLOCK ((void) 0)
|
#define LDBM_UNLOCK ((void) 0)
|
||||||
#else
|
#else
|
||||||
@ -70,7 +70,7 @@ static ldap_pvt_thread_mutex_t ldbm_big_mutex;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined( HAVE_BERKELEY_DB ) || (DB_VERSION_MAJOR < 3)
|
#if !defined( HAVE_BERKELEY_DB ) || (DB_VERSION_MAJOR < 3)
|
||||||
/* a dbEnv for BERKELEYv2 */
|
/* a dbEnv for BERKELEYv2 */
|
||||||
DB_ENV *ldbm_Env = NULL; /* real or fake, depending on db and version */
|
DB_ENV *ldbm_Env = NULL; /* real or fake, depending on db and version */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -118,25 +118,20 @@ int ldbm_initialize( const char* home )
|
|||||||
minor < DB_VERSION_MINOR )
|
minor < DB_VERSION_MINOR )
|
||||||
{
|
{
|
||||||
#ifdef LDAP_SYSLOG
|
#ifdef LDAP_SYSLOG
|
||||||
char error[BUFSIZ];
|
|
||||||
|
|
||||||
sprintf( error, "%s (%d)\n", STRERROR( err ), err );
|
|
||||||
|
|
||||||
syslog( LOG_INFO,
|
syslog( LOG_INFO,
|
||||||
"ldbm_initialize(): version mismatch\nexpected: %s\ngot: %s\n",
|
"ldbm_initialize(): version mismatch\nexpected: %s\ngot: %s\n",
|
||||||
DB_VERSION_STRING,
|
DB_VERSION_STRING, version );
|
||||||
version );
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DB_VERSION_MAJOR < 3
|
#ifndef USE_BERKELEY_CDB
|
||||||
#ifndef HAVE_BERKELEY_DB_THREAD
|
|
||||||
ldap_pvt_thread_mutex_init( &ldbm_big_mutex );
|
ldap_pvt_thread_mutex_init( &ldbm_big_mutex );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if DB_VERSION_MAJOR < 3
|
||||||
ldbm_Env = calloc( 1, sizeof( DB_ENV ));
|
ldbm_Env = calloc( 1, sizeof( DB_ENV ));
|
||||||
|
|
||||||
if( ldbm_Env == NULL ) return 1;
|
if( ldbm_Env == NULL ) return 1;
|
||||||
@ -144,32 +139,23 @@ int ldbm_initialize( const char* home )
|
|||||||
ldbm_Env->db_errcall = ldbm_db_errcall;
|
ldbm_Env->db_errcall = ldbm_db_errcall;
|
||||||
ldbm_Env->db_errpfx = "==>";
|
ldbm_Env->db_errpfx = "==>";
|
||||||
|
|
||||||
envFlags = DB_CREATE;
|
envFlags = DB_CREATE | DB_USE_ENVIRON;
|
||||||
|
|
||||||
/* add optional flags */
|
/* add optional flags */
|
||||||
#ifdef DB_PRIVATE
|
#ifdef DB_PRIVATE
|
||||||
envFlags |= DB_PRIVATE;
|
envFlags |= DB_PRIVATE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_BERKELEY_DB_THREAD
|
#ifdef HAVE_BERKELEY_DB_THREAD
|
||||||
envFlags |= DB_THREAD | DB_INIT_CDB | DB_INIT_MPOOL;
|
envFlags |= DB_THREAD;
|
||||||
#ifdef DB_MPOOL_PRIVATE
|
|
||||||
envFlags |= DB_MPOOL_PRIVATE;
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
envFlags |= DB_USE_ENVIRON;
|
|
||||||
err = db_appinit( home, NULL, ldbm_Env, envFlags );
|
err = db_appinit( home, NULL, ldbm_Env, envFlags );
|
||||||
|
|
||||||
if ( err ) {
|
if ( err ) {
|
||||||
#ifdef LDAP_SYSLOG
|
#ifdef LDAP_SYSLOG
|
||||||
char error[BUFSIZ];
|
syslog( LOG_INFO, "ldbm_initialize(): "
|
||||||
|
"FATAL error in db_appinit() : %s (%d)\n",
|
||||||
sprintf( error, "%s (%d)\n", STRERROR( err ), err );
|
db_strerror( err ), err );
|
||||||
|
|
||||||
syslog( LOG_INFO,
|
|
||||||
"ldbm_initialize(): FATAL error in db_appinit() : %s\n",
|
|
||||||
error );
|
|
||||||
#endif
|
#endif
|
||||||
return( 1 );
|
return( 1 );
|
||||||
}
|
}
|
||||||
@ -184,12 +170,11 @@ int ldbm_shutdown( void )
|
|||||||
|
|
||||||
#if DB_VERSION_MAJOR < 3
|
#if DB_VERSION_MAJOR < 3
|
||||||
db_appexit( ldbm_Env );
|
db_appexit( ldbm_Env );
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_BERKELEY_DB_THREAD
|
#ifndef USE_BERKELEY_CDB
|
||||||
ldap_pvt_thread_mutex_destroy( &ldbm_big_mutex );
|
ldap_pvt_thread_mutex_destroy( &ldbm_big_mutex );
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,34 +209,33 @@ DB_ENV *ldbm_initialize_env(const char *home, int dbcachesize, int *envdirok)
|
|||||||
int err;
|
int err;
|
||||||
u_int32_t envFlags;
|
u_int32_t envFlags;
|
||||||
|
|
||||||
envFlags =
|
|
||||||
#if defined( DB_PRIVATE ) /* comment out DB_PRIVATE setting to use */
|
|
||||||
DB_PRIVATE | /* db_stat to view cache behavior */
|
|
||||||
#endif
|
|
||||||
#if defined( HAVE_BERKELEY_DB_THREAD )
|
|
||||||
DB_THREAD |
|
|
||||||
#endif
|
|
||||||
DB_CREATE;
|
|
||||||
|
|
||||||
err = db_env_create( &env, 0 );
|
err = db_env_create( &env, 0 );
|
||||||
|
|
||||||
if ( err ) {
|
if ( err ) {
|
||||||
char error[BUFSIZ];
|
|
||||||
|
|
||||||
sprintf( error, "%s (%d)\n", STRERROR( err ), err );
|
|
||||||
|
|
||||||
#ifdef LDAP_SYSLOG
|
#ifdef LDAP_SYSLOG
|
||||||
syslog( LOG_INFO, "ldbm_initialize_env(): FATAL error in db_env_create() : %s\n", error );
|
syslog( LOG_INFO, "ldbm_initialize_env(): "
|
||||||
|
"FATAL error in db_env_create() : %s (%d)\n",
|
||||||
|
db_strerror( err ), err );
|
||||||
#endif
|
#endif
|
||||||
return( NULL );
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
env->set_errcall( env, ldbm_db_errcall );
|
env->set_errcall( env, ldbm_db_errcall );
|
||||||
env->set_errpfx( env, "==>" );
|
env->set_errpfx( env, "==>" );
|
||||||
if (dbcachesize)
|
if (dbcachesize) {
|
||||||
env->set_cachesize( env, 0, dbcachesize, 0 );
|
env->set_cachesize( env, 0, dbcachesize, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
envFlags |= DB_INIT_MPOOL | DB_INIT_CDB | DB_USE_ENVIRON;
|
envFlags = DB_CREATE | DB_INIT_MPOOL | DB_USE_ENVIRON;
|
||||||
|
#ifdef DB_PRIVATE
|
||||||
|
envFlags |= DB_PRIVATE;
|
||||||
|
#endif
|
||||||
|
#ifdef DB_MPOOL_PRIVATE
|
||||||
|
envFlags |= DB_MPOOL_PRIVATE;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_BERKELEY_DB_THREAD
|
||||||
|
envFlags |= DB_THREAD;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if DB_VERSION_MAJOR > 3 || DB_VERSION_MINOR > 0
|
#if DB_VERSION_MAJOR > 3 || DB_VERSION_MINOR > 0
|
||||||
err = env->open( env, home, envFlags, 0 );
|
err = env->open( env, home, envFlags, 0 );
|
||||||
@ -260,19 +244,14 @@ DB_ENV *ldbm_initialize_env(const char *home, int dbcachesize, int *envdirok)
|
|||||||
err = env->open( env, home, NULL, envFlags, 0 );
|
err = env->open( env, home, NULL, envFlags, 0 );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( err != 0 )
|
if ( err != 0 ) {
|
||||||
{
|
|
||||||
char error[BUFSIZ];
|
|
||||||
|
|
||||||
sprintf( error, "%s (%d)\n", STRERROR( err ), err );
|
|
||||||
|
|
||||||
#ifdef LDAP_SYSLOG
|
#ifdef LDAP_SYSLOG
|
||||||
syslog( LOG_INFO,
|
syslog( LOG_INFO, "ldbm_initialize_env(): "
|
||||||
"ldbm_initialize_env(): FATAL error in dbEnv->open() : %s\n",
|
"FATAL error in dbEnv->open() : %s (%d)\n",
|
||||||
error );
|
db_strerror( err ), err );
|
||||||
#endif
|
#endif
|
||||||
env->close( env, 0 );
|
env->close( env, 0 );
|
||||||
return( NULL );
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
*envdirok = 1;
|
*envdirok = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user