X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=include%2Fldbm.h;h=9c92ac6e9679a23b6b37ff8270af2430f8cb8083;hb=c04f3e7706b740b9dc6a411ee3e9a882757dfbcd;hp=a5c32dc5cb28a9b34da6a252ec4fa8c6853e8efc;hpb=862e624254b5cabee4945655353ba1da8b867297;p=openldap diff --git a/include/ldbm.h b/include/ldbm.h index a5c32dc5cb..9c92ac6e96 100644 --- a/include/ldbm.h +++ b/include/ldbm.h @@ -1,12 +1,13 @@ /* $OpenLDAP$ */ /* - * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA + * Copyright 1998-2003 The OpenLDAP Foundation, Redwood City, California, USA * All rights reserved. * - * Redistribution and use in source and binary forms are permitted only - * as authorized by the OpenLDAP Public License. A copy of this - * license is available at http://www.OpenLDAP.org/license.html or - * in file LICENSE in the top-level directory of the distribution. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. A copy of this license is available at + * http://www.OpenLDAP.org/license.html or in file LICENSE in the + * top-level directory of the distribution. */ /* ldbm.h - ldap dbm compatibility routine header file */ @@ -15,6 +16,11 @@ #include +/* dummy DB_ENV for non Berkeley DB */ +#if !defined( LDBM_USE_DBBTREE ) && !defined( LDBM_USE_DBHASH ) +# define DB_ENV void +#endif + #if defined( LDBM_USE_DBBTREE ) || defined( LDBM_USE_DBHASH ) /***************************************************************** @@ -22,7 +28,6 @@ * use berkeley db btree or hash package * * * *****************************************************************/ - #include #include #include @@ -35,12 +40,22 @@ # else # include # endif -# if defined( HAVE_BERKELEY_DB2 ) || ( HAVE_BERKELEY_DB3 ) -# define R_NOOVERWRITE DB_NOOVERWRITE -# ifndef DEFAULT_DB_PAGE_SIZE -# define DEFAULT_DB_PAGE_SIZE 4096 -# endif +#endif + +#ifndef DB_VERSION_MAJOR +# define DB_VERSION_MAJOR 1 +#endif +#ifndef DB_VERSION_MINOR +# define DB_VERSION_MINOR 85 +#endif + +#if DB_VERSION_MAJOR >= 2 +# define R_NOOVERWRITE DB_NOOVERWRITE +# ifndef DEFAULT_DB_PAGE_SIZE +# define DEFAULT_DB_PAGE_SIZE 4096 # endif +#else +# define DB_ENV void #endif @@ -54,12 +69,12 @@ typedef DB *LDBM; /* for ldbm_open */ -#if defined( HAVE_BERKELEY_DB2 ) || defined( HAVE_BERKELEY_DB3 ) +#if DB_VERSION_MAJOR >= 2 typedef DBC LDBMCursor; # define LDBM_READER DB_RDONLY # define LDBM_WRITER 0x00000 /* hopefully */ -# if defined( HAVE_BERKELEY_DB2_DB_THREAD ) || defined( HAVE_BERKELEY_DB3_DB_THREAD ) +# if defined( HAVE_BERKELEY_DB_THREAD ) # define LDBM_WRCREAT (DB_NOMMAP|DB_CREATE|DB_THREAD) # define LDBM_NEWDB (DB_TRUNCATE|DB_CREATE|DB_THREAD) # else @@ -112,8 +127,6 @@ typedef datum Datum; typedef Datum LDBMCursor; typedef GDBM_FILE LDBM; -extern gdbm_error gdbm_errno; - LDAP_END_DECL /* for ldbm_open */ @@ -164,7 +177,7 @@ typedef int LDBMCursor; typedef MDBM *LDBM; LDAP_END_DECL - + #include #include #include @@ -229,29 +242,32 @@ LDAP_END_DECL LDAP_BEGIN_DECL -LIBLDBM_F (int) ldbm_initialize( void ); -LIBLDBM_F (int) ldbm_shutdown( void ); +LDAP_LDBM_F (int) ldbm_initialize( const char * ); +LDAP_LDBM_F (int) ldbm_shutdown( void ); + +LDAP_LDBM_F (DB_ENV*) ldbm_initialize_env(const char *, int dbcachesize, int *envdirok); +LDAP_LDBM_F (void) ldbm_shutdown_env(DB_ENV *); -LIBLDBM_F (int) ldbm_errno( LDBM ldbm ); -LIBLDBM_F (LDBM) ldbm_open( char *name, int rw, int mode, int dbcachesize ); -LIBLDBM_F (void) ldbm_close( LDBM ldbm ); -LIBLDBM_F (void) ldbm_sync( LDBM ldbm ); -LIBLDBM_F (void) ldbm_datum_free( LDBM ldbm, Datum data ); -LIBLDBM_F (Datum) ldbm_datum_dup( LDBM ldbm, Datum data ); -LIBLDBM_F (Datum) ldbm_fetch( LDBM ldbm, Datum key ); -LIBLDBM_F (int) ldbm_store( LDBM ldbm, Datum key, Datum data, int flags ); -LIBLDBM_F (int) ldbm_delete( LDBM ldbm, Datum key ); +LDAP_LDBM_F (int) ldbm_errno( LDBM ldbm ); +LDAP_LDBM_F (LDBM) ldbm_open( DB_ENV *env, char *name, int rw, int mode, int dbcachesize ); +LDAP_LDBM_F (void) ldbm_close( LDBM ldbm ); +LDAP_LDBM_F (void) ldbm_sync( LDBM ldbm ); +LDAP_LDBM_F (void) ldbm_datum_free( LDBM ldbm, Datum data ); +LDAP_LDBM_F (Datum) ldbm_datum_dup( LDBM ldbm, Datum data ); +LDAP_LDBM_F (Datum) ldbm_fetch( LDBM ldbm, Datum key ); +LDAP_LDBM_F (int) ldbm_store( LDBM ldbm, Datum key, Datum data, int flags ); +LDAP_LDBM_F (int) ldbm_delete( LDBM ldbm, Datum key ); -LIBLDBM_F (Datum) ldbm_firstkey( LDBM ldbm, LDBMCursor **cursor ); -LIBLDBM_F (Datum) ldbm_nextkey( LDBM ldbm, Datum key, LDBMCursor *cursor ); +LDAP_LDBM_F (Datum) ldbm_firstkey( LDBM ldbm, LDBMCursor **cursor ); +LDAP_LDBM_F (Datum) ldbm_nextkey( LDBM ldbm, Datum key, LDBMCursor *cursor ); /* initialization of Datum structures */ -#if defined( HAVE_BERKELEY_DB2 ) || defined( HAVE_BERKELEY_DB3 ) - LIBLDBM_F (void *) ldbm_malloc( size_t size ); -# define ldbm_datum_init(d) ((void)memset(&(d), 0, sizeof(Datum))) +#if defined( HAVE_BERKELEY_DB ) && (DB_VERSION_MAJOR >= 2) + LDAP_LDBM_F (void *) ldbm_malloc( size_t size ); +# define ldbm_datum_init(d) ((void)memset(&(d), '\0', sizeof(Datum))) #else # define ldbm_datum_init(d) ((void)0) -#endif /* HAVE_BERKELEY_DB2 */ +#endif /* HAVE_BERKELEY_DB */ LDAP_END_DECL