s4-dsdb: pass parent request to dsdb_module_*() functions
[samba.git] / source4 / dsdb / samdb / ldb_modules / subtree_delete.c
index 3817d225a84b2b93cb01ba2b8ee0c463715ab56d..d82c3ab828bcac0e0e3faa0ea4952242171a90ea 100644 (file)
@@ -35,6 +35,7 @@
 #include <ldb.h>
 #include <ldb_module.h>
 #include "dsdb/samdb/ldb_modules/util.h"
+#include "dsdb/common/util.h"
 
 
 static int subtree_delete(struct ldb_module *module, struct ldb_request *req)
@@ -54,6 +55,7 @@ static int subtree_delete(struct ldb_module *module, struct ldb_request *req)
        ret = dsdb_module_search(module, req, &res, req->op.del.dn,
                                 LDB_SCOPE_ONELEVEL, attrs,
                                 DSDB_FLAG_NEXT_MODULE,
+                                req,
                                 "(objectClass=*)");
        if (ret != LDB_SUCCESS) {
                talloc_free(res);
@@ -81,7 +83,7 @@ static int subtree_delete(struct ldb_module *module, struct ldb_request *req)
                }
 
                for (i = 0; i < res->count; i++) {
-                       ret = dsdb_module_del(module, res->msgs[i]->dn, flags);
+                       ret = dsdb_module_del(module, res->msgs[i]->dn, flags, req);
                        if (ret != LDB_SUCCESS) {
                                return ret;
                        }
@@ -109,8 +111,14 @@ static int subtree_delete_init(struct ldb_module *module)
        return ldb_next_init(module);
 }
 
-_PUBLIC_ const struct ldb_module_ops ldb_subtree_delete_module_ops = {
+static const struct ldb_module_ops ldb_subtree_delete_module_ops = {
        .name              = "subtree_delete",
        .init_context      = subtree_delete_init,
        .del               = subtree_delete
 };
+
+int ldb_subtree_delete_module_init(const char *version)
+{
+       LDB_MODULE_CHECK_VERSION(version);
+       return ldb_register_module(&ldb_subtree_delete_module_ops);
+}