1 /* ldbmcache.c - maintain a cache of open bdb2 files */
14 #ifdef HAVE_SYS_PARAM_H
15 #include <sys/param.h>
18 #include "ldapconfig.h"
20 #include "back-bdb2.h"
30 /* all files are open, so return handle from file cache */
33 case SLAP_SERVER_MODE:
34 case SLAP_TIMEDSERVER_MODE:
37 struct ldbminfo *li = (struct ldbminfo *) be->be_private;
41 sprintf( buf, "%s%s", name, suffix );
42 return( bdb2i_get_db_file_cache( li, buf ));
48 /* if not SERVER or TOOL, who else would ask?
49 NO ONE, so return error */
51 Debug( LDAP_DEBUG_ANY,
52 "bdb2i_cache_open: database user (%d) unknown -- cannot open \"%s%s\".\n",
53 slapMode, name, suffix );
59 bdb2i_cache_close( BackendDB *be, struct dbcache *db )
61 /* all files stay open until SERVER or TOOL shut down */
64 case SLAP_SERVER_MODE:
65 case SLAP_TIMEDSERVER_MODE:
70 /* if unknown user, complain */
71 Debug( LDAP_DEBUG_ANY,
72 "bdb2i_cache_close: database user (%d) unknown -- ignored.\n",
79 bdb2i_cache_really_close( BackendDB *be, struct dbcache *db )
81 /* all files stay open until SERVER or TOOL shut down */
84 case SLAP_SERVER_MODE:
85 case SLAP_TIMEDSERVER_MODE:
90 /* if unknown user, complain */
91 Debug( LDAP_DEBUG_ANY,
92 "bdb2i_cache_really_close: database user (%d) unknown -- ignored.\n",
99 bdb2i_cache_flush_all( BackendDB *be )
101 /* if SERVER or TOOL, syncing is done by TP, or during shutdown */
102 switch ( slapMode ) {
104 case SLAP_SERVER_MODE:
105 case SLAP_TIMEDSERVER_MODE:
110 /* if unknown user, complain */
111 Debug( LDAP_DEBUG_ANY,
112 "bdb2i_cache_flush_all: database user (%d) unknown -- ignored.\n",
126 ldbm_datum_init( data );
128 data = ldbm_fetch( db->dbc_db, key );
144 Statslog( LDAP_DEBUG_STATS,
145 "=> bdb2i_cache_store(): key.dptr=%s, key.dsize=%d\n",
146 key.dptr, key.dsize, 0, 0, 0 );
148 Statslog( LDAP_DEBUG_STATS,
149 "=> bdb2i_cache_store(): key.dptr=0x%08x, data.dptr=0x%0 8x\n",
150 key.dptr, data.dptr, 0, 0, 0 );
152 Statslog( LDAP_DEBUG_STATS,
153 "=> bdb2i_cache_store(): data.dptr=%s, data.dsize=%d\n",
154 data.dptr, data.dsize, 0, 0, 0 );
156 Statslog( LDAP_DEBUG_STATS,
157 "=> bdb2i_cache_store(): flags=0x%08x\n",
159 #endif /* LDBM_DEBUG */
161 rc = ldbm_store( db->dbc_db, key, data, flags );
174 rc = ldbm_delete( db->dbc_db, key );