/* compare.c - bdb backend compare routine */
/* $OpenLDAP$ */
/*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
u_int32_t locker;
DB_LOCK lock;
- LOCK_ID ( bdb->bi_dbenv, &locker );
+ rc = LOCK_ID(bdb->bi_dbenv, &locker);
+ switch(rc) {
+ case 0:
+ break;
+ default:
+ send_ldap_result( conn, op, rc=LDAP_OTHER,
+ NULL, "internal error", NULL, NULL );
+ return rc;
+ }
dn2entry_retry:
/* get entry */
goto done;
}
- if ( ! access_allowed( be, conn, op, e,
- ava->aa_desc, &ava->aa_value, ACL_COMPARE, NULL ) )
- {
+ rc = access_allowed( be, conn, op, e,
+ ava->aa_desc, &ava->aa_value, ACL_COMPARE, NULL );
+ if ( ! rc ) {
rc = LDAP_INSUFFICIENT_ACCESS;
goto return_results;
}
{
rc = LDAP_COMPARE_FALSE;
- if ( value_find( ava->aa_desc, a->a_vals, &ava->aa_value ) == 0 ) {
+#ifdef SLAP_NVALUES
+ if ( value_find_ex( ava->aa_desc,
+ SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH,
+ a->a_vals, &ava->aa_value ) == 0 )
+#else
+ if ( value_find( ava->aa_desc, a->a_vals, &ava->aa_value ) == 0 )
+#endif
+ {
rc = LDAP_COMPARE_TRUE;
break;
}
-
}
return_results: