diff options
author | Kamen Mazdrashki <kamenim@samba.org> | 2014-10-28 06:11:31 +0100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2015-02-03 05:02:11 +0100 |
commit | 4e44a0883e1ac5db84e9318b539322f10e35cf59 (patch) | |
tree | e9243abc620d3374519b031f3de4c971c5c7b37d /source4/dsdb | |
parent | 1154075220da592e160ab357f2669eb4e1266217 (diff) | |
download | samba-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.c | 53 |
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; } |