[SCM] Samba Shared Repository - branch master updated
Kamen Mazdrashki
kamenim at samba.org
Wed Jul 7 18:54:01 MDT 2010
The branch, master has been updated
via 609b865... s4-dsdb/util: Reorder DSDB_FLAG_* checks
via 0c4bbb7... s4-dsdb: Implement module switching in dsdb_module_search_dn()
via 62a0f11... s4-source4/dsdb/samdb/ldb_modules/acl.c Use DSDB_FLAG_NEXT_MODULE flag
via 02f0c6d... s4-source4/dsdb/samdb/ldb_modules/linked_attributes.c Use DSDB_FLAG_NEXT_MODULE flag
via 0d2116a... s4-source4/dsdb/samdb/ldb_modules/naming_fsmo.c Use DSDB_FLAG_NEXT_MODULE flag
via b18ab82... s4-source4/dsdb/samdb/ldb_modules/operational.c Use DSDB_FLAG_NEXT_MODULE flag
via 7694b19... s4-source4/dsdb/samdb/ldb_modules/partition_init.c Use DSDB_FLAG_NEXT_MODULE flag
via b627159... s4-source4/dsdb/samdb/ldb_modules/pdc_fsmo.c Use DSDB_FLAG_NEXT_MODULE flag
via 2ee1437... s4-source4/dsdb/samdb/ldb_modules/repl_meta_data.c Use DSDB_FLAG_NEXT_MODULE flag
via d7bcac5... s4-source4/dsdb/samdb/ldb_modules/ridalloc.c Use DSDB_FLAG_NEXT_MODULE flag
via dc72073... s4-source4/dsdb/samdb/ldb_modules/samba_dsdb.c Use DSDB_FLAG_NEXT_MODULE flag
via 8c7a6a8... s4-source4/dsdb/samdb/ldb_modules/schema_load.c Use DSDB_FLAG_NEXT_MODULE flag
via 64c31b7... s4-source4/dsdb/samdb/ldb_modules/util.c Use DSDB_FLAG_NEXT_MODULE flag
from 76a084f... s3-winbindd: Fix child logfile handling which broke with c67cff0372.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 609b8656910eccbb409b58050c306798be22a078
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 04:06:23 2010 +0300
s4-dsdb/util: Reorder DSDB_FLAG_* checks
On good thing about having more clear function interfaces
(and forcing callers to specify clearly what they want)
is that now I can execute following search:
git grep DSDB_FLAG_NEXT_MODULE | wc -l
This showed that DSDB_FLAG_NEXT_MODULE flag is about 6 times
more frequently used than DSDB_FLAG_OWN_MODULE.
So this should reduce branch prediction by six times
in this part of the code, right :)
commit 0c4bbb7106cc2d49052eb85f995dc991b578d885
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:31:17 2010 +0300
s4-dsdb: Implement module switching in dsdb_module_search_dn()
This allows caller to choose from where to start DN search
commit 62a0f11dcbc0dbc7dbb78442d933c0fccee2282b
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:26:03 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/acl.c Use DSDB_FLAG_NEXT_MODULE flag
commit 02f0c6d1ebaee211e1749c14bb351c1eaebf3948
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:25:41 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/linked_attributes.c Use DSDB_FLAG_NEXT_MODULE flag
commit 0d2116a42396546eb0de11cac6794d257e5a224e
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:25:28 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/naming_fsmo.c Use DSDB_FLAG_NEXT_MODULE flag
commit b18ab826043c16adf5aafdb89e4a57be90ff8acf
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:25:11 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/operational.c Use DSDB_FLAG_NEXT_MODULE flag
commit 7694b1964f0e51c5f312ef16b9f4d07d0c273bb2
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:24:59 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/partition_init.c Use DSDB_FLAG_NEXT_MODULE flag
commit b62715964a6060c002f0d6ae4ef42d8e296fc582
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:24:15 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/pdc_fsmo.c Use DSDB_FLAG_NEXT_MODULE flag
commit 2ee14378c3b9e46a71b50a37a18ae0bb2705f131
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:23:58 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/repl_meta_data.c Use DSDB_FLAG_NEXT_MODULE flag
commit d7bcac5a9f39a325d984269f7e8651870dcb82ab
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:23:43 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/ridalloc.c Use DSDB_FLAG_NEXT_MODULE flag
commit dc720739ab8d966c6d7d5064281740b6b35b77bf
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:23:21 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/samba_dsdb.c Use DSDB_FLAG_NEXT_MODULE flag
commit 8c7a6a8dc77fa239aca2283583d3fc858cfb8505
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:22:28 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/schema_load.c Use DSDB_FLAG_NEXT_MODULE flag
commit 64c31b7e0ae2085658ad8f5df7791b0343239276
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Tue Jul 6 03:22:09 2010 +0300
s4-source4/dsdb/samdb/ldb_modules/util.c Use DSDB_FLAG_NEXT_MODULE flag
-----------------------------------------------------------------------
Summary of changes:
source4/dsdb/samdb/ldb_modules/acl.c | 17 ++++--
source4/dsdb/samdb/ldb_modules/linked_attributes.c | 5 +-
source4/dsdb/samdb/ldb_modules/naming_fsmo.c | 3 +-
source4/dsdb/samdb/ldb_modules/operational.c | 10 ++-
source4/dsdb/samdb/ldb_modules/partition_init.c | 9 ++-
source4/dsdb/samdb/ldb_modules/pdc_fsmo.c | 3 +-
source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 10 ++-
source4/dsdb/samdb/ldb_modules/ridalloc.c | 9 ++-
source4/dsdb/samdb/ldb_modules/samba_dsdb.c | 6 +-
source4/dsdb/samdb/ldb_modules/schema_load.c | 3 +-
source4/dsdb/samdb/ldb_modules/util.c | 67 +++++++++++--------
11 files changed, 91 insertions(+), 51 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/dsdb/samdb/ldb_modules/acl.c b/source4/dsdb/samdb/ldb_modules/acl.c
index 1d5e805..2b0b19c 100644
--- a/source4/dsdb/samdb/ldb_modules/acl.c
+++ b/source4/dsdb/samdb/ldb_modules/acl.c
@@ -108,7 +108,9 @@ int dsdb_module_check_access_on_dn(struct ldb_module *module,
return ldb_operr(ldb);
}
ret = dsdb_module_search_dn(module, mem_ctx, &acl_res, dn,
- acl_attrs, DSDB_SEARCH_SHOW_DELETED);
+ acl_attrs,
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED);
if (ret != LDB_SUCCESS) {
DEBUG(10,("access_check: failed to find object %s\n", ldb_dn_get_linearized(dn)));
return ret;
@@ -158,7 +160,8 @@ static int acl_module_init(struct ldb_module *module)
ret = dsdb_module_search_dn(module, mem_ctx, &res,
ldb_dn_new(mem_ctx, ldb, "@KLUDGEACL"),
- attrs, 0);
+ attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
goto done;
}
@@ -849,7 +852,8 @@ static int acl_modify(struct ldb_module *module, struct ldb_request *req)
return ldb_next_request(module, req);
}
ret = dsdb_module_search_dn(module, tmp_ctx, &acl_res, req->op.mod.message->dn,
- acl_attrs, 0);
+ acl_attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
goto fail;
@@ -1080,7 +1084,9 @@ static int acl_rename(struct ldb_module *module, struct ldb_request *req)
ldb = ldb_module_get_ctx(module);
ret = dsdb_module_search_dn(module, req, &acl_res, req->op.rename.olddn,
- acl_attrs, DSDB_SEARCH_SHOW_DELETED);
+ acl_attrs,
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED);
/* we sould be able to find the parent */
if (ret != LDB_SUCCESS) {
DEBUG(10,("acl: failed to find object %s\n",
@@ -1230,7 +1236,8 @@ static int acl_search_callback(struct ldb_request *req, struct ldb_reply *ares)
|| ac->allowedAttributesEffective
|| ac->sDRightsEffective) {
ret = dsdb_module_search_dn(ac->module, ac, &acl_res, ares->message->dn,
- acl_attrs, 0);
+ acl_attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
return ldb_module_done(ac->req, NULL, NULL, ret);
}
diff --git a/source4/dsdb/samdb/ldb_modules/linked_attributes.c b/source4/dsdb/samdb/ldb_modules/linked_attributes.c
index 67ae236..29f9d0d 100644
--- a/source4/dsdb/samdb/ldb_modules/linked_attributes.c
+++ b/source4/dsdb/samdb/ldb_modules/linked_attributes.c
@@ -620,6 +620,7 @@ static int linked_attributes_fix_links(struct ldb_module *module,
ret = dsdb_module_search_dn(module, tmp_ctx, &res, dsdb_dn->dn,
attrs,
+ DSDB_FLAG_NEXT_MODULE |
DSDB_SEARCH_SHOW_DELETED |
DSDB_SEARCH_SHOW_DN_IN_STORAGE_FORMAT |
DSDB_SEARCH_REVEAL_INTERNALS);
@@ -712,7 +713,9 @@ static int linked_attributes_rename(struct ldb_module *module, struct ldb_reques
- modify the target linked attributes with the new DN
*/
ret = dsdb_module_search_dn(module, req, &res, req->op.rename.olddn,
- NULL, DSDB_SEARCH_SHOW_DELETED);
+ NULL,
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED);
if (ret != LDB_SUCCESS) {
return ret;
}
diff --git a/source4/dsdb/samdb/ldb_modules/naming_fsmo.c b/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
index 5023657..3f4c892 100644
--- a/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
@@ -66,7 +66,8 @@ static int naming_fsmo_init(struct ldb_module *module)
ret = dsdb_module_search_dn(module, mem_ctx, &naming_res,
naming_dn,
- naming_attrs, 0);
+ naming_attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
ldb_debug(ldb, LDB_DEBUG_WARNING,
"naming_fsmo_init: no partitions dn present: (skip loading of naming contexts details)\n");
diff --git a/source4/dsdb/samdb/ldb_modules/operational.c b/source4/dsdb/samdb/ldb_modules/operational.c
index 03502d3..c1da400 100644
--- a/source4/dsdb/samdb/ldb_modules/operational.c
+++ b/source4/dsdb/samdb/ldb_modules/operational.c
@@ -212,7 +212,9 @@ static int construct_parent_guid(struct ldb_module *module,
return LDB_SUCCESS;
}
- ret = dsdb_module_search_dn(module, msg, &res, parent_dn, attrs, DSDB_SEARCH_SHOW_DELETED);
+ ret = dsdb_module_search_dn(module, msg, &res, parent_dn, attrs,
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED);
talloc_free(parent_dn);
/* if there is no parent for this object, then return */
@@ -323,7 +325,8 @@ static int construct_msds_isrodc_with_server_dn(struct ldb_module *module,
return ldb_operr(ldb_module_get_ctx(module));
}
- ret = dsdb_module_search_dn(module, msg, &res, server_dn, attr_obj_cat, 0);
+ ret = dsdb_module_search_dn(module, msg, &res, server_dn, attr_obj_cat,
+ DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
DEBUG(4,(__location__ ": Can't get objectCategory for %s \n",
ldb_dn_get_linearized(server_dn)));
@@ -350,7 +353,8 @@ static int construct_msds_isrodc_with_computer_dn(struct ldb_module *module,
int ret;
struct ldb_dn *server_dn;
- ret = dsdb_module_search_dn(module, msg, &res, msg->dn, attr, 0);
+ ret = dsdb_module_search_dn(module, msg, &res, msg->dn, attr,
+ DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
DEBUG(4,(__location__ ": Can't get serverReferenceBL for %s \n",
ldb_dn_get_linearized(msg->dn)));
diff --git a/source4/dsdb/samdb/ldb_modules/partition_init.c b/source4/dsdb/samdb/ldb_modules/partition_init.c
index 99d2f1d..87c2543 100644
--- a/source4/dsdb/samdb/ldb_modules/partition_init.c
+++ b/source4/dsdb/samdb/ldb_modules/partition_init.c
@@ -136,7 +136,8 @@ static int partition_reload_metadata(struct ldb_module *module, struct partition
/* perform search for @PARTITION, looking for module, replicateEntries and ldapBackend */
ret = dsdb_module_search_dn(module, mem_ctx, &res,
ldb_dn_new(mem_ctx, ldb, DSDB_PARTITION_DN),
- attrs, 0);
+ attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
return ret;
}
@@ -499,7 +500,8 @@ int partition_reload_if_required(struct ldb_module *module,
/* Get the 'correct' case of the partition DNs from the database */
ret = dsdb_module_search_dn(partition->module, data, &dn_res,
- dn, no_attrs, 0);
+ dn, no_attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_SUCCESS) {
talloc_free(partition->ctrl->dn);
partition->ctrl->dn = talloc_steal(partition->ctrl, dn_res->msgs[0]->dn);
@@ -540,7 +542,8 @@ static int new_partition_set_replicated_metadata(struct ldb_context *ldb,
struct ldb_request *add_req;
ret = dsdb_module_search_dn(module, last_req, &replicate_res,
data->replicate[i],
- NULL, 0);
+ NULL,
+ DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
continue;
}
diff --git a/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c b/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
index 2d45ae2..9bf49da 100644
--- a/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
@@ -65,7 +65,8 @@ static int pdc_fsmo_init(struct ldb_module *module)
ret = dsdb_module_search_dn(module, mem_ctx, &pdc_res,
pdc_dn,
- pdc_attrs, 0);
+ pdc_attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
ldb_debug(ldb, LDB_DEBUG_WARNING,
"pdc_fsmo_init: no domain object present: (skip loading of domain details)\n");
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index 8668b5e..90af17f 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -1117,7 +1117,8 @@ static int replmd_update_rpmd(struct ldb_module *module,
* replmd_update_rpmd_element()
*/
ret = dsdb_module_search_dn(module, msg, &res, msg->dn, attrs,
- DSDB_SEARCH_SHOW_DELETED |
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED |
DSDB_SEARCH_SHOW_EXTENDED_DN |
DSDB_SEARCH_SHOW_DN_IN_STORAGE_FORMAT |
DSDB_SEARCH_REVEAL_INTERNALS);
@@ -1970,7 +1971,8 @@ static int replmd_modify_handle_linked_attribs(struct ldb_module *module,
}
ret = dsdb_module_search_dn(module, msg, &res, msg->dn, NULL,
- DSDB_SEARCH_SHOW_DELETED |
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED |
DSDB_SEARCH_REVEAL_INTERNALS |
DSDB_SEARCH_SHOW_DN_IN_STORAGE_FORMAT);
if (ret != LDB_SUCCESS) {
@@ -2407,7 +2409,8 @@ static int replmd_delete(struct ldb_module *module, struct ldb_request *req)
/* we need the complete msg off disk, so we can work out which
attributes need to be removed */
ret = dsdb_module_search_dn(module, tmp_ctx, &res, old_dn, NULL,
- DSDB_SEARCH_SHOW_DELETED |
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED |
DSDB_SEARCH_REVEAL_INTERNALS |
DSDB_SEARCH_SHOW_DN_IN_STORAGE_FORMAT);
if (ret != LDB_SUCCESS) {
@@ -2527,6 +2530,7 @@ static int replmd_delete(struct ldb_module *module, struct ldb_request *req)
/* we need the storage form of the parent GUID */
ret = dsdb_module_search_dn(module, tmp_ctx, &parent_res,
ldb_dn_get_parent(tmp_ctx, old_dn), NULL,
+ DSDB_FLAG_NEXT_MODULE |
DSDB_SEARCH_SHOW_DN_IN_STORAGE_FORMAT |
DSDB_SEARCH_REVEAL_INTERNALS|
DSDB_SEARCH_SHOW_DELETED);
diff --git a/source4/dsdb/samdb/ldb_modules/ridalloc.c b/source4/dsdb/samdb/ldb_modules/ridalloc.c
index 55636d1..91d48ba 100644
--- a/source4/dsdb/samdb/ldb_modules/ridalloc.c
+++ b/source4/dsdb/samdb/ldb_modules/ridalloc.c
@@ -107,7 +107,8 @@ static int ridalloc_rid_manager_allocate(struct ldb_module *module, struct ldb_d
struct ldb_context *ldb = ldb_module_get_ctx(module);
const unsigned alloc_size = 500;
- ret = dsdb_module_search_dn(module, tmp_ctx, &res, rid_manager_dn, attrs, 0);
+ ret = dsdb_module_search_dn(module, tmp_ctx, &res, rid_manager_dn,
+ attrs, DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
ldb_asprintf_errstring(ldb, "Failed to find rIDAvailablePool in %s - %s",
ldb_dn_get_linearized(rid_manager_dn), ldb_errstring(ldb));
@@ -449,7 +450,8 @@ int ridalloc_allocate_rid(struct ldb_module *module, uint32_t *rid)
return ret;
}
- ret = dsdb_module_search_dn(module, tmp_ctx, &res, rid_set_dn, attrs, 0);
+ ret = dsdb_module_search_dn(module, tmp_ctx, &res, rid_set_dn,
+ attrs, DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
ldb_asprintf_errstring(ldb, __location__ ": No RID Set %s",
ldb_dn_get_linearized(rid_set_dn));
@@ -623,7 +625,8 @@ int ridalloc_allocate_rid_pool_fsmo(struct ldb_module *module, struct dsdb_fsmo_
struct ldb_result *res;
uint64_t alloc_pool;
- ret = dsdb_module_search_dn(module, tmp_ctx, &res, rid_set_dn, attrs, 0);
+ ret = dsdb_module_search_dn(module, tmp_ctx, &res, rid_set_dn,
+ attrs, DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
ldb_asprintf_errstring(ldb, __location__ ": No RID Set %s",
ldb_dn_get_linearized(rid_set_dn));
diff --git a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
index 09990b0..392e215 100644
--- a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
+++ b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
@@ -58,7 +58,8 @@ static int read_at_rootdse_record(struct ldb_context *ldb, struct ldb_module *mo
return ldb_oom(ldb);
}
- ret = dsdb_module_search_dn(module, tmp_ctx, &rootdse_res, rootdse_dn, rootdse_attrs, 0);
+ ret = dsdb_module_search_dn(module, tmp_ctx, &rootdse_res, rootdse_dn,
+ rootdse_attrs, DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
talloc_free(tmp_ctx);
return ret;
@@ -233,7 +234,8 @@ static int samba_dsdb_init(struct ldb_module *module)
} \
} while (0)
- ret = dsdb_module_search_dn(module, tmp_ctx, &res, samba_dsdb_dn, samba_dsdb_attrs, 0);
+ ret = dsdb_module_search_dn(module, tmp_ctx, &res, samba_dsdb_dn,
+ samba_dsdb_attrs, DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
backendType = "ldb";
serverRole = "domain controller";
diff --git a/source4/dsdb/samdb/ldb_modules/schema_load.c b/source4/dsdb/samdb/ldb_modules/schema_load.c
index dc3b060..1542018 100644
--- a/source4/dsdb/samdb/ldb_modules/schema_load.c
+++ b/source4/dsdb/samdb/ldb_modules/schema_load.c
@@ -172,7 +172,8 @@ static int dsdb_schema_from_db(struct ldb_module *module, struct ldb_dn *schema_
* setup the prefix mappings and schema info
*/
ret = dsdb_module_search_dn(module, tmp_ctx, &schema_res,
- schema_dn, schema_attrs, 0);
+ schema_dn, schema_attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
ldb_reset_err_string(ldb);
ldb_debug(ldb, LDB_DEBUG_WARNING,
diff --git a/source4/dsdb/samdb/ldb_modules/util.c b/source4/dsdb/samdb/ldb_modules/util.c
index 639b0df..bf260f9 100644
--- a/source4/dsdb/samdb/ldb_modules/util.c
+++ b/source4/dsdb/samdb/ldb_modules/util.c
@@ -71,7 +71,16 @@ int dsdb_module_search_dn(struct ldb_module *module,
return ret;
}
- ret = ldb_next_request(module, req);
+ /* Run the new request */
+ if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) {
+ ret = ldb_next_request(module, req);
+ } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
+ ret = ldb_request(ldb_module_get_ctx(module), req);
+ } else {
+ const struct ldb_module_ops *ops = ldb_module_get_ops(module);
+ SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE);
+ ret = ops->modify(module, req);
+ }
if (ret == LDB_SUCCESS) {
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
}
@@ -153,14 +162,14 @@ int dsdb_module_search(struct ldb_module *module,
return ret;
}
- if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
- const struct ldb_module_ops *ops = ldb_module_get_ops(module);
- ret = ops->search(module, req);
+ if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) {
+ ret = ldb_next_request(module, req);
} else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
ret = ldb_request(ldb_module_get_ctx(module), req);
} else {
- SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE);
- ret = ldb_next_request(module, req);
+ const struct ldb_module_ops *ops = ldb_module_get_ops(module);
+ SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE);
+ ret = ops->search(module, req);
}
if (ret == LDB_SUCCESS) {
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
@@ -225,7 +234,8 @@ int dsdb_module_guid_by_dn(struct ldb_module *module, struct ldb_dn *dn, struct
NTSTATUS status;
ret = dsdb_module_search_dn(module, tmp_ctx, &res, dn, attrs,
- DSDB_SEARCH_SHOW_DELETED|
+ DSDB_FLAG_NEXT_MODULE |
+ DSDB_SEARCH_SHOW_DELETED |
DSDB_SEARCH_SHOW_EXTENDED_DN);
if (ret != LDB_SUCCESS) {
ldb_asprintf_errstring(ldb_module_get_ctx(module), "Failed to find GUID for %s",
@@ -282,14 +292,14 @@ int dsdb_module_modify(struct ldb_module *module,
}
/* Run the new request */
- if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
- const struct ldb_module_ops *ops = ldb_module_get_ops(module);
- ret = ops->modify(module, mod_req);
+ if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) {
+ ret = ldb_next_request(module, mod_req);
} else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
ret = ldb_request(ldb_module_get_ctx(module), mod_req);
} else {
- SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE);
- ret = ldb_next_request(module, mod_req);
+ const struct ldb_module_ops *ops = ldb_module_get_ops(module);
+ SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE);
+ ret = ops->modify(module, mod_req);
}
if (ret == LDB_SUCCESS) {
ret = ldb_wait(mod_req->handle, LDB_WAIT_ALL);
@@ -340,14 +350,14 @@ int dsdb_module_rename(struct ldb_module *module,
}
/* Run the new request */
- if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
- const struct ldb_module_ops *ops = ldb_module_get_ops(module);
- ret = ops->rename(module, req);
+ if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) {
+ ret = ldb_next_request(module, req);
} else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
ret = ldb_request(ldb_module_get_ctx(module), req);
} else {
- SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE);
- ret = ldb_next_request(module, req);
+ const struct ldb_module_ops *ops = ldb_module_get_ops(module);
+ SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE);
+ ret = ops->rename(module, req);
}
if (ret == LDB_SUCCESS) {
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
@@ -395,14 +405,14 @@ int dsdb_module_add(struct ldb_module *module,
}
/* Run the new request */
- if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
- const struct ldb_module_ops *ops = ldb_module_get_ops(module);
- ret = ops->add(module, req);
+ if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) {
+ ret = ldb_next_request(module, req);
} else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
ret = ldb_request(ldb_module_get_ctx(module), req);
} else {
- SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE);
- ret = ldb_next_request(module, req);
+ const struct ldb_module_ops *ops = ldb_module_get_ops(module);
+ SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE);
+ ret = ops->add(module, req);
}
if (ret == LDB_SUCCESS) {
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
@@ -450,14 +460,14 @@ int dsdb_module_del(struct ldb_module *module,
}
/* Run the new request */
- if (dsdb_flags & DSDB_FLAG_OWN_MODULE) {
- const struct ldb_module_ops *ops = ldb_module_get_ops(module);
- ret = ops->del(module, req);
+ if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) {
+ ret = ldb_next_request(module, req);
} else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) {
ret = ldb_request(ldb_module_get_ctx(module), req);
} else {
- SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE);
- ret = ldb_next_request(module, req);
+ const struct ldb_module_ops *ops = ldb_module_get_ops(module);
+ SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE);
+ ret = ops->del(module, req);
}
if (ret == LDB_SUCCESS) {
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
@@ -596,7 +606,8 @@ int dsdb_module_reference_dn(struct ldb_module *module, TALLOC_CTX *mem_ctx, str
attrs[0] = attribute;
attrs[1] = NULL;
- ret = dsdb_module_search_dn(module, mem_ctx, &res, base, attrs, 0);
+ ret = dsdb_module_search_dn(module, mem_ctx, &res, base, attrs,
+ DSDB_FLAG_NEXT_MODULE);
if (ret != LDB_SUCCESS) {
return ret;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list