]> git.sur5r.net Git - openldap/blobdiff - include/ldbm.h
Add LDAP_TAG_LDAPCRED macro.
[openldap] / include / ldbm.h
index 0a7edcdf13c36daf838cb13779804ea0bb95e02b..876b7c60efada58494843c28d64489f496f76064 100644 (file)
@@ -12,6 +12,8 @@
 #ifndef _LDBM_H_
 #define _LDBM_H_
 
+#include <ldap_cdefs.h>
+
 #ifdef LDBM_USE_DBBTREE
 
 /*****************************************************************
 #include <limits.h>
 #include <fcntl.h>
 
-#ifdef HAVE_DB185_H
+#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
 #endif
 
 
+LDAP_BEGIN_DECL
+
 typedef DBT    Datum;
 #define dsize  size
 #define dptr   data
 
 typedef DB     *LDBM;
 
+LDAP_END_DECL
+
 #define DB_TYPE                DB_BTREE
 
 /* for ldbm_open */
@@ -78,22 +88,30 @@ typedef DB  *LDBM;
 #include <limits.h>
 #include <fcntl.h>
 
-#ifdef HAVE_DB185_H
+#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
 #      endif
 #endif
 
+LDAP_BEGIN_DECL
+
 typedef DBT    Datum;
 #define dsize  size
 #define dptr   data
 
 typedef DB     *LDBM;
 
+LDAP_END_DECL
+
 #define DB_TYPE                DB_HASH
 
 /* for ldbm_open */
@@ -127,12 +145,16 @@ typedef DB        *LDBM;
 
 #include <gdbm.h>
 
+LDAP_BEGIN_DECL
+
 typedef datum          Datum;
 
 typedef GDBM_FILE      LDBM;
 
 extern gdbm_error      gdbm_errno;
 
+LDAP_END_DECL
+
 /* for ldbm_open */
 #define LDBM_READER    GDBM_READER
 #define LDBM_WRITER    GDBM_WRITER
@@ -147,6 +169,41 @@ extern gdbm_error  gdbm_errno;
 #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 )
 
@@ -162,10 +219,14 @@ extern gdbm_error gdbm_errno;
 #include <fcntl.h>
 #endif
 
+LDAP_BEGIN_DECL
+
 typedef datum  Datum;
 
 typedef DBM    *LDBM;
 
+LDAP_END_DECL
+
 /* for ldbm_open */
 #define LDBM_READER    O_RDONLY
 #define LDBM_WRITER    O_WRONLY
@@ -182,6 +243,11 @@ typedef DBM        *LDBM;
 
 #endif
 
+LDAP_BEGIN_DECL
+
+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 );
@@ -204,13 +270,11 @@ int       ldbm_delete( LDBM ldbm, Datum key );
 
 /* initialization of Datum structures */
 #ifdef HAVE_BERKELEY_DB2
-
 #   define ldbm_datum_init(d) ((void)memset(&(d), 0, sizeof(Datum)))
-
 #else
-
 #   define ldbm_datum_init(d) ((void)0)
-
 #endif  /* HAVE_BERKELEY_DB2 */
 
+LDAP_END_DECL
+
 #endif /* _ldbm_h_ */