/* init.c - initialize ldbm backend */
+#include "portable.h"
+
#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
+
+#include <ac/string.h>
+#include <ac/socket.h>
+
#include "slap.h"
#include "back-ldbm.h"
+void
ldbm_back_init(
Backend *be
)
li = (struct ldbminfo *) ch_calloc( 1, sizeof(struct ldbminfo) );
/* arrange to read nextid later (on first request for it) */
- li->li_nextid = -1;
+ li->li_nextid = NOID;
/* default cache size */
li->li_cache.c_maxsize = DEFAULT_CACHE_SIZE;
/* default database cache size */
li->li_dbcachesize = DEFAULT_DBCACHE_SIZE;
+ /* default cache mode is sync on write */
+ li->li_dbcachewsync = 1;
+
/* default file creation mode */
li->li_mode = DEFAULT_MODE;
attr_index_config( li, "ldbm id2children initialization", 0, 2, argv,
1 );
argv[ 0 ] = "objectclass";
- argv[ 1 ] = strdup( "pres,eq" );
+ argv[ 1 ] = ch_strdup( "pres,eq" );
argv[ 2 ] = NULL;
attr_index_config( li, "ldbm objectclass initialization", 0, 2, argv,
1 );
free( argv[ 1 ] );
/* initialize various mutex locks & condition variables */
+ pthread_mutex_init( &li->li_root_mutex, pthread_mutexattr_default );
+ pthread_mutex_init( &li->li_add_mutex, pthread_mutexattr_default );
pthread_mutex_init( &li->li_cache.c_mutex, pthread_mutexattr_default );
pthread_mutex_init( &li->li_nextid_mutex, pthread_mutexattr_default );
pthread_mutex_init( &li->li_dbcache_mutex, pthread_mutexattr_default );