]> git.sur5r.net Git - openldap/commitdiff
Add BDB3.0 support
authorKurt Zeilenga <kurt@openldap.org>
Tue, 4 Sep 2001 00:14:17 +0000 (00:14 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 4 Sep 2001 00:14:17 +0000 (00:14 +0000)
libraries/libldbm/ldbm.c

index 734af29dfa2847f198bab0b50ff2dee5d8b362e5..f230d8e2e8573dea9854af92f969df0091a870d3 100644 (file)
@@ -102,8 +102,6 @@ ldbm_db_errcall( const char *prefix, char *message )
 #endif
 }
 
-#if DB_VERSION_MAJOR < 3
-
 int ldbm_initialize( const char* home )
 {
        int     err;
@@ -134,6 +132,7 @@ int ldbm_initialize( const char* home )
                }
        }
 
+#if DB_VERSION_MAJOR < 3
 #ifndef HAVE_BERKELEY_DB_THREAD
        ldap_pvt_thread_mutex_init( &ldbm_big_mutex );
 #endif
@@ -174,6 +173,7 @@ int ldbm_initialize( const char* home )
 #endif
                return( 1 );
        }
+#endif
 
        return 0;
 }
@@ -182,35 +182,17 @@ int ldbm_shutdown( void )
 {
        if( !ldbm_initialized ) return 1;
 
+#if DB_VERSION_MAJOR < 3
        db_appexit( ldbm_Env );
 
 #ifndef HAVE_BERKELEY_DB_THREAD
        ldap_pvt_thread_mutex_destroy( &ldbm_big_mutex );
+#endif
 #endif
 
        return 0;
 }
 
-#else  /* Berkeley v3 or greater */
-
-
-int ldbm_initialize( const char * home )
-{
-       /* v3 uses ldbm_initialize_env */
-       return 0;
-}
-
-
-int ldbm_shutdown( void )
-{
-       return 0;
-}
-
-
-#endif
-
-
-
 #else  /* some DB other than Berkeley V2 or greater */
 
 int ldbm_initialize( const char * home )
@@ -236,7 +218,6 @@ int ldbm_shutdown( void )
 
 #if defined( HAVE_BERKELEY_DB ) && (DB_VERSION_MAJOR >= 3)
 
-
 DB_ENV *ldbm_initialize_env(const char *home, int dbcachesize, int *envdirok)
 {
        DB_ENV *env = NULL;    
@@ -272,7 +253,12 @@ DB_ENV *ldbm_initialize_env(const char *home, int dbcachesize, int *envdirok)
 
        envFlags |= DB_INIT_MPOOL | DB_INIT_CDB | DB_USE_ENVIRON;
 
+#if DB_VERSION_MAJOR > 3 || DB_VERSION_MINOR > 0
        err = env->open( env, home, envFlags, 0 );
+#else
+       /* 3.0.x requires an extra argument */
+       err = env->open( env, home, NULL, envFlags, 0 );
+#endif
 
        if ( err != 0 )
        {
@@ -310,7 +296,6 @@ void ldbm_shutdown_env(DB_ENV *env)
 {
 }
 
-
 #endif