- /* deref suffix alias if appropriate */
- ndn->bv_val = suffix_alias( be, ndn->bv_val );
- ndn->bv_len = strlen( ndn->bv_val );
+#if defined( LDAP_SLAPI )
+#define pb op->o_pb
+ if ( pb ) {
+ slapi_int_pblock_set_operation( pb, op );
+ slapi_pblock_set( pb, SLAPI_DELETE_TARGET, (void *)op->o_req_dn.bv_val );
+ slapi_pblock_set( pb, SLAPI_MANAGEDSAIT, (void *)manageDSAit );
+
+ rs->sr_err = slapi_int_call_plugins( op->o_bd,
+ SLAPI_PLUGIN_PRE_DELETE_FN, pb );
+ if ( rs->sr_err < 0 ) {
+ /*
+ * A preoperation plugin failure will abort the
+ * entire operation.
+ */
+ Debug (LDAP_DEBUG_TRACE, "do_delete: "
+ "delete preoperation plugin failed.\n", 0, 0, 0);
+ if ( ( slapi_pblock_get( 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 ) */