X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-monitor%2Fcompare.c;h=8fa2fa4154232e776d7b7b74f9c6cbda097adb8f;hb=9fd0ad6f68f361d780bd64e6127309f6b05bd489;hp=3a8df66624c29f16ea9093b82eaa169708566282;hpb=639d678592afb79eff17313282c3504c9b02638d;p=openldap diff --git a/servers/slapd/back-monitor/compare.c b/servers/slapd/back-monitor/compare.c index 3a8df66624..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 ( value_find_ex( op->oq_compare.rs_ava->aa_desc, - SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH | - SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH, - a->a_nvals, &op->oq_compare.rs_ava->aa_value, - 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; }