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; }