]> git.sur5r.net Git - openldap/blobdiff - include/ldbm.h
Drop support for alloca().
[openldap] / include / ldbm.h
index 3f55a6ffeaa2ff3127ff5dba79a6422656755138..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 )
 
@@ -202,7 +245,9 @@ LDAP_END_DECL
 
 LDAP_BEGIN_DECL
 
-void ldbm_initialize( void );
+int ldbm_initialize( void );
+int ldbm_shutdown( void );
+
 int    ldbm_errno( LDBM ldbm );
 LDBM   ldbm_open( char *name, int rw, int mode, int dbcachesize );
 void   ldbm_close( LDBM ldbm );