mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
s4-dsdb: added dsdb_module_add()
added a ldb add function for modules Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
fcfb5d7b63
commit
f137f93e09
@ -391,6 +391,52 @@ int dsdb_module_rename(struct ldb_module *module,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
a ldb_add request operating on modules below the
|
||||
current module
|
||||
*/
|
||||
int dsdb_module_add(struct ldb_module *module,
|
||||
const struct ldb_message *message,
|
||||
uint32_t dsdb_flags)
|
||||
{
|
||||
struct ldb_request *req;
|
||||
int ret;
|
||||
struct ldb_context *ldb = ldb_module_get_ctx(module);
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(module);
|
||||
|
||||
ret = ldb_build_add_req(&req, ldb, tmp_ctx,
|
||||
message,
|
||||
NULL,
|
||||
NULL,
|
||||
ldb_op_default_callback,
|
||||
NULL);
|
||||
if (ret != LDB_SUCCESS) {
|
||||
talloc_free(tmp_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = dsdb_request_add_controls(module, req, dsdb_flags);
|
||||
if (ret != LDB_SUCCESS) {
|
||||
talloc_free(tmp_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 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);
|
||||
} else {
|
||||
ret = ldb_next_request(module, req);
|
||||
}
|
||||
if (ret == LDB_SUCCESS) {
|
||||
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
|
||||
}
|
||||
|
||||
talloc_free(tmp_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
const struct dsdb_class * get_last_structural_class(const struct dsdb_schema *schema,const struct ldb_message_element *element)
|
||||
{
|
||||
const struct dsdb_class *last_class = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user