- case LDAP_SUCCESS :
- if(bvals){
- for( i = 0; bvals[i].bv_val != NULL; i++){
- ACL_RECORD_VALUE_STATE;
- if (aci_mask(op, e, desc, val, &bvals[i], matches,
- &grant, &deny, &aci_bv_children) != 0) {
- tgrant |= grant;
- tdeny |= deny;
- /* evaluation stops as soon as either a "deny" or a
- * "grant" directive matches.
- */
- if( (tgrant != ACL_PRIV_NONE) || (tdeny != ACL_PRIV_NONE) ){
- stop=1;
- }
- }
- Debug(LDAP_DEBUG_ACL, "<= aci_mask grant %s deny %s\n",
- accessmask2str(tgrant,accessmaskbuf),
- accessmask2str(tdeny, accessmaskbuf1), 0);
+ case LDAP_SUCCESS :
+ stop = 0;
+ if (!bvals){
+ break;
+ }
+
+ for( i = 0; bvals[i].bv_val != NULL; i++){
+#if 0
+ /* FIXME: this breaks acl caching;
+ * see also ACL_RECORD_VALUE_STATE above */
+ ACL_RECORD_VALUE_STATE;
+#endif
+ if (aci_mask(op, e, desc, val, &bvals[i], matches,
+ &grant, &deny, &aci_bv_children) != 0) {
+ tgrant |= grant;
+ tdeny |= deny;
+ /* evaluation stops as soon as either a "deny" or a
+ * "grant" directive matches.
+ */
+ if( (tgrant != ACL_PRIV_NONE) || (tdeny != ACL_PRIV_NONE) ){
+ stop = 1;