r24793: The subtree_rename module is a work of fiction. An resemblance to a
authorAndrew Bartlett <abartlet@samba.org>
Thu, 30 Aug 2007 00:25:47 +0000 (00:25 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 20:03:10 +0000 (15:03 -0500)
working module, live or dead, is purely co-incidental.

Andrew Bartlett
(This used to be commit 64cc31642fd2ded149631d07bc022213f19595b8)

source4/dsdb/samdb/ldb_modules/subtree_rename.c
source4/scripting/libjs/provision.js

index 993331216eb3cbdffcc6c0dd623f8af303e6289a..2cc83b308be14f9a084394178ecfc6bc695b3454 100644 (file)
@@ -44,16 +44,6 @@ struct subtree_rename_context {
        int finished_requests;
 };
 
        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)
 {
 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);
 
 
                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);
 
                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;
                        return LDB_ERR_OPERATIONS_ERROR;
                }
                ac->down_req[ac->num_requests] = req;
+               ac->num_requests++;
                
                return ldb_next_request(ac->module, req);
 
                
                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,
        ret = ldb_build_search_req(&new_req, module->ldb, req,
                                   req->op.rename.olddn, 
                                   LDB_SCOPE_SUBTREE,
-                                  "objectClass=*",
+                                  "(objectClass=*)",
                                   attrs,
                                   req->controls,
                                   ac, 
                                   attrs,
                                   req->controls,
                                   ac, 
@@ -197,8 +190,6 @@ static int subtree_rename(struct ldb_module *module, struct ldb_request *req)
                return ret;
        }
 
                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) {
        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;
        }
                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) {
 }
 
 static int subtree_rename_wait_none(struct ldb_handle *handle) {
index f20eb547ac62936189b75964bf626e367db453e6..ca0fedf97b97b64144bd5f705ac6225941f0769c 100644 (file)
@@ -935,7 +935,6 @@ function provision_guess()
                                        "objectclass",
                                        "rdn_name",
                                        "show_deleted",
                                        "objectclass",
                                        "rdn_name",
                                        "show_deleted",
-                                       "subtree_rename",
                                        "partition");
        subobj.MODULES_LIST = join(",", modules_list);
        subobj.DOMAINDN_LDB = "users.ldb";
                                        "partition");
        subobj.MODULES_LIST = join(",", modules_list);
        subobj.DOMAINDN_LDB = "users.ldb";