static int mdb_db_init( BackendDB *be, ConfigReply *cr ) { struct mdb_info *mdb; int rc; Debug( LDAP_DEBUG_TRACE, LDAP_XSTRING(mdb_db_init) ": Initializing mdb database\n", 0, 0, 0 ); /* allocate backend-database-specific stuff */ mdb = (struct mdb_info *) ch_calloc( 1, sizeof(struct mdb_info) ); /* DBEnv parameters */ mdb->mi_dbenv_home = ch_strdup( SLAPD_DEFAULT_DB_DIR ); mdb->mi_dbenv_flags = 0; mdb->mi_dbenv_mode = SLAPD_DEFAULT_DB_MODE; mdb->mi_search_stack_depth = DEFAULT_SEARCH_STACK_DEPTH; mdb->mi_search_stack = NULL; mdb->mi_mapsize = DEFAULT_MAPSIZE; be->be_private = mdb; be->be_cf_ocs = be->bd_info->bi_cf_ocs; #ifndef MDB_MULTIPLE_SUFFIXES SLAP_DBFLAGS( be ) |= SLAP_DBFLAG_ONE_SUFFIX; #endif rc = mdb_monitor_db_init( be ); return rc; }
static int mdb_db_init( BackendDB *be, ConfigReply *cr ) { struct mdb_info *mdb; int rc; Debug( LDAP_DEBUG_TRACE, LDAP_XSTRING(mdb_db_init) ": Initializing mdb database\n" ); #if MDBX_MODE_ENABLED unsigned flags = mdbx_setup_debug(MDBX_DBG_DNT, mdbx_debug, MDBX_DBG_DNT); flags &= ~(MDBX_DBG_TRACE | MDBX_DBG_EXTRA | MDBX_DBG_ASSERT); if (reopenldap_mode_check()) flags |= MDBX_DBG_ASSERT; # if LDAP_DEBUG > 1 flags |= MDBX_DBG_PRINT | MDBX_DBG_TRACE; # endif /* LDAP_DEBUG > 1 */ # if LDAP_DEBUG > 2 flags |= MDBX_DBG_EXTRA; # endif /* LDAP_DEBUG > 2 */ mdbx_setup_debug(flags, (MDBX_debug_func*) MDBX_DBG_DNT, MDBX_DBG_DNT); #endif /* MDBX_MODE_ENABLED */ /* allocate backend-database-specific stuff */ mdb = (struct mdb_info *) ch_calloc( 1, sizeof(struct mdb_info) ); /* DBEnv parameters */ mdb->mi_dbenv_home = ch_strdup( SLAPD_DEFAULT_DB_DIR ); mdb->mi_dbenv_flags = 0; mdb->mi_dbenv_mode = SLAPD_DEFAULT_DB_MODE; mdb->mi_search_stack_depth = DEFAULT_SEARCH_STACK_DEPTH; mdb->mi_search_stack = NULL; mdb->mi_mapsize = DEFAULT_MAPSIZE; mdb->mi_rtxn_size = DEFAULT_RTXN_SIZE; be->be_private = mdb; be->be_cf_ocs = be->bd_info->bi_cf_ocs; #ifndef MDB_MULTIPLE_SUFFIXES SLAP_DBFLAGS( be ) |= SLAP_DBFLAG_ONE_SUFFIX; #endif slap_backtrace_set_dir( mdb->mi_dbenv_home ); ldap_pvt_thread_mutex_init( &mdb->mi_ads_mutex ); rc = mdb_monitor_db_init( be ); return rc; }