Slapi_PBlock * slapi_rename_internal(const char *iodn, const char *inewrdn, const char *inewsuperior, int deloldrdn, LDAPControl **controls, int dummy) { Slapi_PBlock pb; Slapi_PBlock *result_pb = NULL; int opresult= 0; Slapi_DN sdn; Slapi_DN newsuperiorsdn; pblock_init (&pb); slapi_sdn_init_dn_byref(&sdn, iodn); slapi_sdn_init_dn_byref(&newsuperiorsdn, inewsuperior); slapi_rename_internal_set_pb_ext(&pb, &sdn, inewrdn, &newsuperiorsdn, deloldrdn, controls, NULL, plugin_get_default_component_id(), 0); rename_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); } slapi_sdn_done(&sdn); slapi_sdn_done(&newsuperiorsdn); pblock_done(&pb); return result_pb; }
void pw_apply_mods(const Slapi_DN *sdn, Slapi_Mods *mods) { Slapi_PBlock pb; int res; if (mods && (slapi_mods_get_num_mods(mods) > 0)) { pblock_init(&pb); /* We don't want to overwrite the modifiersname, etc. attributes, * so we set a flag for this operation */ slapi_modify_internal_set_pb_ext (&pb, sdn, slapi_mods_get_ldapmods_byref(mods), NULL, /* Controls */ NULL, /* UniqueID */ pw_get_componentID(), /* PluginID */ OP_FLAG_SKIP_MODIFIED_ATTRS); /* Flags */ slapi_modify_internal_pb (&pb); slapi_pblock_get(&pb, SLAPI_PLUGIN_INTOP_RESULT, &res); if (res != LDAP_SUCCESS){ LDAPDebug2Args(LDAP_DEBUG_ANY, "WARNING: passwordPolicy modify error %d on entry '%s'\n", res, slapi_sdn_get_dn(sdn)); } pblock_done(&pb); } return; }
/* This function is used to issue internal add 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_add_internal_pb instead Beware: The entry is consumed. */ Slapi_PBlock * slapi_add_entry_internal(Slapi_Entry *e, LDAPControl **controls, int dummy) { Slapi_PBlock pb; Slapi_PBlock *result_pb = NULL; int opresult; pblock_init(&pb); slapi_add_entry_internal_set_pb (&pb, e, controls, plugin_get_default_component_id(), 0); add_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; }
/* 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; }