summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/common
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/ldb/common')
-rw-r--r--source4/lib/ldb/common/ldb.c9
-rw-r--r--source4/lib/ldb/common/ldb_modules.c8
2 files changed, 12 insertions, 5 deletions
diff --git a/source4/lib/ldb/common/ldb.c b/source4/lib/ldb/common/ldb.c
index 28bed0b0ea..9d8783324c 100644
--- a/source4/lib/ldb/common/ldb.c
+++ b/source4/lib/ldb/common/ldb.c
@@ -125,7 +125,7 @@ void ldb_reset_err_string(struct ldb_context *ldb)
#define FIRST_OP(ldb, op) do { \
module = ldb->modules; \
while (module && module->ops->op == NULL) module = module->next; \
- if (module == NULL) return -1; \
+ if (module == NULL) return LDB_ERR_OPERATIONS_ERROR; \
} while (0)
/*
@@ -208,10 +208,11 @@ int ldb_transaction_cancel(struct ldb_context *ldb)
int ldb_async_wait(struct ldb_context *ldb, struct ldb_async_handle *handle, enum ldb_async_wait_type type)
{
- if (ldb->async_wait != NULL)
- return ldb->async_wait(handle, type);
+ struct ldb_module *module;
+
+ FIRST_OP(ldb, async_wait);
- return LDB_ERR_OPERATIONS_ERROR;
+ return module->ops->async_wait(module, handle, type);
}
/*
diff --git a/source4/lib/ldb/common/ldb_modules.c b/source4/lib/ldb/common/ldb_modules.c
index f1b4783fca..17c5231e54 100644
--- a/source4/lib/ldb/common/ldb_modules.c
+++ b/source4/lib/ldb/common/ldb_modules.c
@@ -278,7 +278,7 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[])
#define FIND_OP(module, op) do { \
module = module->next; \
while (module && module->ops->op == NULL) module = module->next; \
- if (module == NULL) return LDB_ERR_OTHER; \
+ if (module == NULL) return LDB_ERR_OPERATIONS_ERROR; \
} while (0)
@@ -324,3 +324,9 @@ int ldb_next_del_trans(struct ldb_module *module)
FIND_OP(module, del_transaction);
return module->ops->del_transaction(module);
}
+
+int ldb_next_async_wait(struct ldb_module *module, struct ldb_async_handle *handle, enum ldb_async_wait_type type)
+{
+ FIND_OP(module, async_wait);
+ return module->ops->async_wait(module, handle, type);
+}