summaryrefslogtreecommitdiffstats
path: root/source4/dsdb
diff options
context:
space:
mode:
authorKamen Mazdrashki <kamenim@samba.org>2014-10-28 06:11:31 +0100
committerAndrew Bartlett <abartlet@samba.org>2015-02-03 05:02:11 +0100
commit4e44a0883e1ac5db84e9318b539322f10e35cf59 (patch)
treee9243abc620d3374519b031f3de4c971c5c7b37d /source4/dsdb
parent1154075220da592e160ab357f2669eb4e1266217 (diff)
downloadsamba-4e44a0883e1ac5db84e9318b539322f10e35cf59.tar.gz
samba-4e44a0883e1ac5db84e9318b539322f10e35cf59.tar.xz
samba-4e44a0883e1ac5db84e9318b539322f10e35cf59.zip
s4-dsdb: Make use dsdb_make_object_category() for objectCategory
Change-Id: If65c54a653ad7078ca7a535b5c247db2746b5be7 Signed-off-by: Kamen Mazdrashki <kamenim@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'source4/dsdb')
-rw-r--r--source4/dsdb/samdb/ldb_modules/tombstone_reanimate.c53
1 files changed, 1 insertions, 52 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/tombstone_reanimate.c b/source4/dsdb/samdb/ldb_modules/tombstone_reanimate.c
index 534b5f8373..dff18d20e7 100644
--- a/source4/dsdb/samdb/ldb_modules/tombstone_reanimate.c
+++ b/source4/dsdb/samdb/ldb_modules/tombstone_reanimate.c
@@ -106,57 +106,6 @@ static bool is_tombstone_reanimate_request(struct ldb_request *req, struct ldb_m
return true;
}
-static int _tr_make_object_category(struct tr_context *ac, struct ldb_message *obj,
- TALLOC_CTX *mem_ctx, const char **pobjectcategory)
-{
- int ret;
- struct ldb_context *ldb;
- const struct dsdb_class *objectclass;
- struct ldb_message_element *objectclass_element;
-
- ldb = ldb_module_get_ctx(ac->module);
-
- objectclass_element = ldb_msg_find_element(obj, "objectClass");
- if (!objectclass_element) {
- ldb_asprintf_errstring(ldb, "tombstone_reanimate: Cannot add %s, no objectclass specified!",
- ldb_dn_get_linearized(obj->dn));
- return LDB_ERR_OBJECT_CLASS_VIOLATION;
- }
- if (objectclass_element->num_values == 0) {
- ldb_asprintf_errstring(ldb, "tombstone_reanimate: Cannot add %s, at least one (structural) objectclass has to be specified!",
- ldb_dn_get_linearized(obj->dn));
- return LDB_ERR_CONSTRAINT_VIOLATION;
- }
-
- /* Now do the sorting */
- ret = dsdb_sort_objectClass_attr(ldb, ac->schema,
- objectclass_element, obj,
- objectclass_element);
- if (ret != LDB_SUCCESS) {
- return ret;
- }
-
- /*
- * Get the new top-most structural object class and check for
- * unrelated structural classes
- */
- objectclass = dsdb_get_last_structural_class(ac->schema,
- objectclass_element);
- if (objectclass == NULL) {
- ldb_asprintf_errstring(ldb,
- "Failed to find a structural class for %s",
- ldb_dn_get_linearized(obj->dn));
- return LDB_ERR_UNWILLING_TO_PERFORM;
- }
-
- *pobjectcategory = talloc_strdup(mem_ctx, objectclass->defaultObjectCategory);
- if (*pobjectcategory == NULL) {
- return ldb_oom(ldb);
- }
-
- return LDB_SUCCESS;
-}
-
static int tombstone_reanimate_modify(struct ldb_module *module, struct ldb_request *req)
{
int ret;
@@ -228,7 +177,7 @@ static int tombstone_reanimate_modify(struct ldb_module *module, struct ldb_requ
if (objectcategory == NULL) {
const char *value;
- ret = _tr_make_object_category(ac, res_obj->msgs[0], msg, &value);
+ ret = dsdb_make_object_category(ldb, ac->schema, res_obj->msgs[0], msg, &value);
if (ret != LDB_SUCCESS) {
return ret;
}