mirror of
https://github.com/samba-team/samba.git
synced 2025-12-16 00:23:52 +03:00
r26581: Make ldb_wait uniform, so that it is easy to remove it completely from modules
later on.
This commit is contained in:
committed by
Stefan Metzmacher
parent
f1997dabed
commit
f75ce8c20a
@@ -440,8 +440,7 @@ static int paged_results(struct ldb_handle *handle)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int paged_wait(struct ldb_handle *handle, enum ldb_wait_type type)
|
||||
{
|
||||
static int paged_wait_once(struct ldb_handle *handle) {
|
||||
struct paged_context *ac;
|
||||
int ret;
|
||||
|
||||
@@ -471,28 +470,7 @@ static int paged_wait(struct ldb_handle *handle, enum ldb_wait_type type)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (type == LDB_WAIT_ALL) {
|
||||
while (ac->store->req->handle->state != LDB_ASYNC_DONE) {
|
||||
ret = ldb_wait(ac->store->req->handle, type);
|
||||
if (ret != LDB_SUCCESS) {
|
||||
handle->state = LDB_ASYNC_DONE;
|
||||
handle->status = ret;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = paged_results(handle);
|
||||
|
||||
/* we are done, if num_entries is zero free the storage
|
||||
* as that mean we delivered the last batch */
|
||||
if (ac->store->num_entries == 0) {
|
||||
talloc_free(ac->store);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = ldb_wait(ac->store->req->handle, type);
|
||||
ret = ldb_wait(ac->store->req->handle, LDB_WAIT_NONE);
|
||||
if (ret != LDB_SUCCESS) {
|
||||
handle->state = LDB_ASYNC_DONE;
|
||||
handle->status = ret;
|
||||
@@ -516,6 +494,28 @@ static int paged_wait(struct ldb_handle *handle, enum ldb_wait_type type)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int paged_wait(struct ldb_handle *handle, enum ldb_wait_type type)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!handle || !handle->private_data) {
|
||||
return LDB_ERR_OPERATIONS_ERROR;
|
||||
}
|
||||
|
||||
if (type == LDB_WAIT_ALL) {
|
||||
while (handle->state != LDB_ASYNC_DONE) {
|
||||
ret = paged_wait_once(handle);
|
||||
if (ret != LDB_SUCCESS) {
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return handle->status;
|
||||
}
|
||||
|
||||
return paged_wait_once(handle);
|
||||
}
|
||||
|
||||
static int paged_request_init(struct ldb_module *module)
|
||||
{
|
||||
struct private_data *data;
|
||||
|
||||
Reference in New Issue
Block a user