mirror of
https://github.com/samba-team/samba.git
synced 2025-02-09 09:57:48 +03:00
s4-dsdb: Return ldb_result context in dsdb_module_extended
The result of the extended operation is now available in the calling routine. Signed-off-by: Andrew Tridgell <tridge@samba.org>
This commit is contained in:
parent
c199b35dd4
commit
422fcbbe72
@ -314,14 +314,21 @@ int dsdb_module_guid_by_dn(struct ldb_module *module, struct ldb_dn *dn, struct
|
||||
talloc_free(tmp_ctx);
|
||||
return LDB_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
a ldb_extended request operating on modules below the
|
||||
current module
|
||||
|
||||
Note that this does not automatically start a transaction. If you
|
||||
need a transaction the caller needs to start it as needed.
|
||||
*/
|
||||
int dsdb_module_extended(struct ldb_module *module,
|
||||
const char* oid, void* data,
|
||||
uint32_t dsdb_flags,
|
||||
struct ldb_request *parent)
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct ldb_result **_res,
|
||||
const char* oid, void* data,
|
||||
uint32_t dsdb_flags,
|
||||
struct ldb_request *parent)
|
||||
{
|
||||
struct ldb_request *req;
|
||||
int ret;
|
||||
@ -329,6 +336,10 @@ int dsdb_module_extended(struct ldb_module *module,
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(module);
|
||||
struct ldb_result *res;
|
||||
|
||||
if (_res != NULL) {
|
||||
(*_res) = NULL;
|
||||
}
|
||||
|
||||
res = talloc_zero(tmp_ctx, struct ldb_result);
|
||||
if (!res) {
|
||||
talloc_free(tmp_ctx);
|
||||
@ -373,9 +384,15 @@ int dsdb_module_extended(struct ldb_module *module,
|
||||
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
|
||||
}
|
||||
|
||||
if (_res != NULL && ret == LDB_SUCCESS) {
|
||||
(*_res) = talloc_steal(mem_ctx, res);
|
||||
}
|
||||
|
||||
talloc_free(tmp_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
a ldb_modify request operating on modules below the
|
||||
current module
|
||||
|
Loading…
x
Reference in New Issue
Block a user