int urp_fixup_delete_entry (const char *uniqueid, const char *dn, CSN *opcsn, int opflags) { Slapi_PBlock *newpb; Slapi_Operation *op; int op_result; newpb = slapi_pblock_new (); /* * Mark this operation as replicated, so that the front end * doesn't add extra attributes. */ slapi_delete_internal_set_pb ( newpb, dn, NULL, /*Controls*/ uniqueid, /*uniqueid*/ repl_get_plugin_identity ( PLUGIN_MULTIMASTER_REPLICATION ), OP_FLAG_REPLICATED | OP_FLAG_REPL_FIXUP | opflags ); slapi_pblock_get ( newpb, SLAPI_OPERATION, &op ); operation_set_csn ( op, opcsn ); slapi_delete_internal_pb ( newpb ); slapi_pblock_get ( newpb, SLAPI_PLUGIN_INTOP_RESULT, &op_result ); slapi_pblock_destroy ( newpb ); return op_result; }
/* Function : slapi_delete_internal * * Description : Plugin functions call this routine to delete an entry * in the backend directly * Return values : LDAP_SUCCESS * LDAP_PARAM_ERROR * LDAP_NO_MEMORY * LDAP_OTHER * LDAP_UNWILLING_TO_PERFORM */ Slapi_PBlock * slapi_delete_internal( char *ldn, LDAPControl **controls, int log_change ) { Slapi_PBlock *pb; pb = slapi_pblock_new(); slapi_delete_internal_set_pb( pb, ldn, controls, NULL, NULL, 0 ); slapi_pblock_set( pb, SLAPI_LOG_OPERATION, (void *)&log_change ); slapi_delete_internal_pb( pb ); return pb; }
/* This function is used to issue internal delete operation This is an old style API. Its use is discoraged because it is not extendable and because it does not allow to check whether plugin has right to access part of the tree it is trying to modify. Use slapi_delete_internal_pb instead */ Slapi_PBlock * slapi_delete_internal(const char *idn, LDAPControl **controls, int dummy) { Slapi_PBlock pb; Slapi_PBlock *result_pb; int opresult; pblock_init (&pb); slapi_delete_internal_set_pb (&pb, idn, controls, NULL, plugin_get_default_component_id(), 0); delete_internal_pb (&pb); result_pb = slapi_pblock_new(); if (result_pb) { slapi_pblock_get(&pb, SLAPI_PLUGIN_INTOP_RESULT, &opresult); slapi_pblock_set(result_pb, SLAPI_PLUGIN_INTOP_RESULT, &opresult); } pblock_done(&pb); return result_pb; }