]> git.sur5r.net Git - openldap/commitdiff
Added support for BDB 4.1.17
authorHoward Chu <hyc@openldap.org>
Thu, 22 Aug 2002 04:00:06 +0000 (04:00 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 22 Aug 2002 04:00:06 +0000 (04:00 +0000)
libraries/libldbm/ldbm.c
servers/slapd/back-bdb/back-bdb.h
servers/slapd/back-bdb/dbcache.c
servers/slapd/back-bdb/init.c

index 112a54a9b43cfa9a4a2e7ca88dcc8f773f456490..31c845416f9702ee40d58d901d4b3fc088c5ad82 100644 (file)
@@ -335,7 +335,11 @@ ldbm_open( DB_ENV *env, char *name, int rw, int mode, int dbcachesize )
        __atoe(n2);
        name = n2;
 #endif
+#if DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR > 0 && DB_VERSION_PATCH >= 17
+       err = ret->open( ret, NULL, name, NULL, DB_TYPE, rw, mode);
+#else
        err = ret->open( ret, name, NULL, DB_TYPE, rw, mode);
+#endif
 
        if ( err != 0 ) {
                int tmp = errno;
index 784bbc89aaa40eeffa247c368991d747d9db1dc7..6eeae509e586c3f66085c920a8e71d5a75ddc774 100644 (file)
@@ -143,6 +143,9 @@ struct bdb_op_info {
        int                     boi_err;
 };
 
+#define        DB_OPEN(db, file, name, type, flags, mode) \
+       (db)->open(db, file, name, type, flags, mode)
+
 #if DB_VERSION_MAJOR < 4
 #define LOCK_DETECT(env,f,t,a)         lock_detect(env, f, t, a)
 #define LOCK_GET(env,i,f,o,m,l)                lock_get(env, i, f, o, m, l)
@@ -167,6 +170,13 @@ struct bdb_op_info {
 #define TXN_ID(txn)                                    (txn)->id(txn)
 #define LOCK_ID(env, locker)           (env)->lock_id(env, locker)
 #define LOCK_ID_FREE(env, locker)      (env)->lock_id_free(env, locker)
+
+#if DB_VERSION_MINOR > 1 || DB_VERSION_PATCH >= 17
+#undef DB_OPEN
+#define        DB_OPEN(db, file, name, type, flags, mode) \
+       (db)->open(db, NULL, file, name, type, (flags)|DB_AUTO_COMMIT, mode)
+#endif
+
 #endif
 
 LDAP_END_DECL
index 68efe9aad4b977a75807bbf050943257f318960e..8ee06503e5f1c9b1dece8c593240dcfa0ce96def 100644 (file)
@@ -109,7 +109,7 @@ bdb_db_cache(
        file = ch_malloc( strlen( name ) + sizeof(BDB_SUFFIX) );
        sprintf( file, "%s" BDB_SUFFIX, name );
 
-       rc = db->bdi_db->open( db->bdi_db,
+       rc = DB_OPEN( db->bdi_db,
                file, name,
                DB_HASH, bdb->bi_db_opflags | DB_CREATE | DB_THREAD,
                bdb->bi_dbenv_mode );
index 8fa83ec16b5d99678e60a39a5e92bfdc561db552..7c9ce06645f5cf07dac5800138dd97dd3a61f879 100644 (file)
@@ -362,7 +362,7 @@ bdb_db_open( BackendDB *be )
                                BDB_PAGESIZE );
                }
 
-               rc = db->bdi_db->open( db->bdi_db,
+               rc = DB_OPEN( db->bdi_db, 
                        bdbi_databases[i].file,
                /*      bdbi_databases[i].name, */ NULL,
                        bdbi_databases[i].type,