+ op->o_req_dn.bv_val,
+ ava.aa_desc->ad_cname.bv_val, ava.aa_value.bv_val );
+
+ Statslog( LDAP_DEBUG_STATS, "%s CMP dn=\"%s\" attr=\"%s\"\n",
+ op->o_log_prefix, op->o_req_dn.bv_val,
+ ava.aa_desc->ad_cname.bv_val, 0, 0 );
+
+#if defined( LDAP_SLAPI )
+#define pb op->o_pb
+ if ( pb ) {
+ slapi_int_pblock_set_operation( pb, op );
+ slapi_pblock_set( pb, SLAPI_COMPARE_TARGET, (void *)op->o_req_dn.bv_val );
+ slapi_pblock_set( pb, SLAPI_MANAGEDSAIT, (void *)manageDSAit );
+ slapi_pblock_set( pb, SLAPI_COMPARE_TYPE, (void *)ava.aa_desc->ad_cname.bv_val );
+ slapi_pblock_set( pb, SLAPI_COMPARE_VALUE, (void *)&ava.aa_value );
+
+ rs->sr_err = slapi_int_call_plugins( op->o_bd,
+ SLAPI_PLUGIN_PRE_COMPARE_FN, pb );
+ if ( rs->sr_err < 0 ) {
+ /*
+ * A preoperation plugin failure will abort the
+ * entire operation.
+ */
+ Debug(LDAP_DEBUG_TRACE,
+ "do_compare: compare preoperation plugin failed\n",
+ 0, 0, 0);
+ if ( ( slapi_pblock_get( op->o_pb, SLAPI_RESULT_CODE,
+ (void *)&rs->sr_err ) != 0 ) || rs->sr_err == LDAP_SUCCESS )
+ {
+ rs->sr_err = LDAP_OTHER;
+ }
+ goto cleanup;
+ }
+ }
+#endif /* defined( LDAP_SLAPI ) */