X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-monitor%2Fcompare.c;h=8fa2fa4154232e776d7b7b74f9c6cbda097adb8f;hb=9fd0ad6f68f361d780bd64e6127309f6b05bd489;hp=9cac645bc92daaf0fbd377d83d3b3f72e2b952b4;hpb=7bcdfe9532ea42d3a111707ab3b649cd602f2fbb;p=openldap diff --git a/servers/slapd/back-monitor/compare.c b/servers/slapd/back-monitor/compare.c index 9cac645bc9..8fa2fa4154 100644 --- a/servers/slapd/back-monitor/compare.c +++ b/servers/slapd/back-monitor/compare.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2001-2007 The OpenLDAP Foundation. + * Copyright 2001-2010 The OpenLDAP Foundation. * Portions Copyright 2001-2003 Pierangelo Masarati. * All rights reserved. * @@ -57,30 +57,7 @@ monitor_back_compare( Operation *op, SlapReply *rs ) return rs->sr_err; } - rs->sr_err = access_allowed( op, e, op->oq_compare.rs_ava->aa_desc, - &op->oq_compare.rs_ava->aa_value, ACL_COMPARE, NULL ); - if ( !rs->sr_err ) { - rs->sr_err = LDAP_INSUFFICIENT_ACCESS; - goto return_results; - } - - rs->sr_err = LDAP_NO_SUCH_ATTRIBUTE; - - for ( a = attrs_find( e->e_attrs, op->oq_compare.rs_ava->aa_desc ); - a != NULL; - a = attrs_find( a->a_next, op->oq_compare.rs_ava->aa_desc )) { - rs->sr_err = LDAP_COMPARE_FALSE; - - if ( attr_valfind( a, - SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH | - SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH, - &op->oq_compare.rs_ava->aa_value, NULL, - op->o_tmpmemctx ) == 0 ) - { - rs->sr_err = LDAP_COMPARE_TRUE; - break; - } - } + rs->sr_err = slap_compare_entry( op, e, op->orc_ava ); return_results:; rc = rs->sr_err; @@ -90,15 +67,7 @@ return_results:; rc = LDAP_SUCCESS; break; - case LDAP_NO_SUCH_ATTRIBUTE: - break; - default: - if ( !access_allowed_mask( op, e, slap_schema.si_ad_entry, - NULL, ACL_DISCLOSE, NULL, NULL ) ) - { - rs->sr_err = LDAP_NO_SUCH_OBJECT; - } break; }