]> git.sur5r.net Git - openldap/blobdiff - include/ldbm.h
Drop support for alloca().
[openldap] / include / ldbm.h
index 0440858bfd72d22e762b311a43f1206c2c6cb71a..876b7c60efada58494843c28d64489f496f76064 100644 (file)
 #ifdef HAVE_DB_185_H
 #      include <db_185.h>
 #else
-#      include <db.h>
+#      ifdef HAVE_DB1_DB_H
+#              include <db1/db.h>
+#      else
+#              include <db.h>
+#      endif
 #      ifdef HAVE_BERKELEY_DB2
 #              define R_NOOVERWRITE DB_NOOVERWRITE
 #              define DEFAULT_DB_PAGE_SIZE 1024
@@ -87,7 +91,11 @@ LDAP_END_DECL
 #ifdef HAVE_DB_185_H
 #      include <db_185.h>
 #else
-#      include <db.h>
+#      ifdef HAVE_DB1_DB_H
+#              include <db1/db.h>
+#      else
+#              include <db.h>
+#      endif
 #      ifdef LDBM_USE_DB2
 #              define R_NOOVERWRITE DB_NOOVERWRITE
 #              define DEFAULT_DB_PAGE_SIZE 1024
@@ -161,6 +169,41 @@ LDAP_END_DECL
 #define LDBM_REPLACE   GDBM_REPLACE
 #define LDBM_SYNC      0x80000000
 
+#elif defined( HAVE_MDBM )
+
+/*****************************************************************
+ *                                                               *
+ * use mdbm if possible                                          *
+ *                                                               *
+ *****************************************************************/
+
+#include <mdbm.h>
+
+LDAP_BEGIN_DECL
+
+typedef datum          Datum;
+typedef MDBM           *LDBM;
+
+LDAP_END_DECL
+    
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+/* for ldbm_open */
+#define LDBM_READER    O_RDONLY
+#define LDBM_WRITER    O_RDWR
+#define LDBM_WRCREAT   (O_RDWR|O_CREAT)
+#define LDBM_NEWDB     (O_RDWR|O_TRUNC|O_CREAT)
+#define LDBM_FAST      0
+
+#define LDBM_SUFFIX    ".mdbm"
+
+/* for ldbm_insert */
+#define LDBM_INSERT    MDBM_INSERT
+#define LDBM_REPLACE   MDBM_REPLACE
+#define LDBM_SYNC      0x80000000
+
 
 #elif defined( HAVE_NDBM )
 
@@ -204,9 +247,6 @@ LDAP_BEGIN_DECL
 
 int ldbm_initialize( void );
 int ldbm_shutdown( void );
-#if HAVE_BERKELEY_DB2
-extern DB_ENV  ldbm_Env;
-#endif
 
 int    ldbm_errno( LDBM ldbm );
 LDBM   ldbm_open( char *name, int rw, int mode, int dbcachesize );