data.dptr = (char *) &id;
data.dsize = sizeof(ID);
+#ifdef LDBM_PESSIMISTIC
+ rc = ldbm_cache_store( db, key, data, LDBM_INSERT | LDBM_SYNC );
+#else
rc = ldbm_cache_store( db, key, data, LDBM_INSERT );
+#endif
free( dn );
ldbm_cache_close( be, db );
ID id;
Datum key, data;
- Debug( LDAP_DEBUG_TRACE, "=> dn2id( \"%s\" )\n", dn, 0, 0 );
dn = strdup( dn );
dn_normalize_case( dn );
+ Debug( LDAP_DEBUG_TRACE, "=> dn2id( \"%s\" )\n", dn, 0, 0 );
/* first check the cache */
if ( (e = cache_find_entry_dn( &li->li_cache, dn )) != NULL ) {
#include <stdio.h>
#include <sys/types.h>
-#include <sys/socket.h>
#include "slap.h"
#include "ldapconfig.h"
#include "back-ldbm.h"
data.dptr = (char *) idl;
data.dsize = (2 + idl->b_nmax) * sizeof(ID);
+#ifdef LDBM_PESSIMISTIC
+ rc = ldbm_cache_store( db, key, data, LDBM_REPLACE | LDBM_SYNC );
+#else
rc = ldbm_cache_store( db, key, data, LDBM_REPLACE );
+#endif
/* Debug( LDAP_DEBUG_TRACE, "<= idl_store %d\n", rc, 0, 0 ); */
return( rc );
if ( a == NULL ) {
return( NULL );
}
- if ( b == NULL ) {
+ if ( b == NULL || ALLIDS( b )) {
return( idl_dup( a ) );
}
- if ( ALLIDS( b ) ) {
- return( NULL );
- }
if ( ALLIDS( a ) ) {
n = idl_alloc( SLAPD_LDBM_MIN_MAXIDS );