summaryrefslogtreecommitdiff
path: root/source4/dsdb
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb')
-rw-r--r--source4/dsdb/samdb/ldb_modules/subtree_rename.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/subtree_rename.c b/source4/dsdb/samdb/ldb_modules/subtree_rename.c
index 993331216e..2cc83b308b 100644
--- a/source4/dsdb/samdb/ldb_modules/subtree_rename.c
+++ b/source4/dsdb/samdb/ldb_modules/subtree_rename.c
@@ -44,16 +44,6 @@ struct subtree_rename_context {
int finished_requests;
};
-struct subtree_rename_search_context {
- struct ldb_module *module;
- struct ldb_request *orig_req;
- struct ldb_handle *handle;
-
- struct ldb_request **down_req;
- int num_requests;
- int finished_requests;
-};
-
static struct subtree_rename_context *subtree_rename_init_handle(struct ldb_request *req,
struct ldb_module *module)
{
@@ -127,7 +117,9 @@ static int subtree_rename_search_callback(struct ldb_context *ldb, void *context
talloc_steal(req, newdn);
- req->handle = ac->handle;
+ talloc_steal(req, ares->message->dn);
+
+ talloc_free(ares);
ac->down_req = talloc_realloc(ac, ac->down_req,
struct ldb_request *, ac->num_requests + 1);
@@ -136,6 +128,7 @@ static int subtree_rename_search_callback(struct ldb_context *ldb, void *context
return LDB_ERR_OPERATIONS_ERROR;
}
ac->down_req[ac->num_requests] = req;
+ ac->num_requests++;
return ldb_next_request(ac->module, req);
@@ -176,7 +169,7 @@ static int subtree_rename(struct ldb_module *module, struct ldb_request *req)
ret = ldb_build_search_req(&new_req, module->ldb, req,
req->op.rename.olddn,
LDB_SCOPE_SUBTREE,
- "objectClass=*",
+ "(objectClass=*)",
attrs,
req->controls,
ac,
@@ -197,8 +190,6 @@ static int subtree_rename(struct ldb_module *module, struct ldb_request *req)
return ret;
}
- new_req->handle = req->handle;
-
ac->down_req = talloc_realloc(ac, ac->down_req,
struct ldb_request *, ac->num_requests + 1);
if (!ac->down_req) {
@@ -210,8 +201,8 @@ static int subtree_rename(struct ldb_module *module, struct ldb_request *req)
ldb_oom(ac->module->ldb);
return LDB_ERR_OPERATIONS_ERROR;
}
-
- return ldb_next_request(module, req);
+ ac->num_requests++;
+ return ldb_next_request(module, new_req);
}
static int subtree_rename_wait_none(struct ldb_handle *handle) {