svn commit: samba r14161 - in branches/SAMBA_4_0/source/lib/ldb:
ldb_ildap ldb_ldap ldb_sqlite3 ldb_tdb
idra at samba.org
idra at samba.org
Fri Mar 10 15:27:16 GMT 2006
Author: idra
Date: 2006-03-10 15:27:16 +0000 (Fri, 10 Mar 2006)
New Revision: 14161
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14161
Log:
return early if we know the job is already finished
Modified:
branches/SAMBA_4_0/source/lib/ldb/ldb_ildap/ldb_ildap.c
branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c
branches/SAMBA_4_0/source/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_ildap/ldb_ildap.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_ildap/ldb_ildap.c 2006-03-10 15:10:47 UTC (rev 14160)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_ildap/ldb_ildap.c 2006-03-10 15:27:16 UTC (rev 14161)
@@ -352,6 +352,9 @@
h->private_data = (void *)ildb_ac;
+ h->state = LDB_ASYNC_INIT;
+ h->status = LDB_SUCCESS;
+
req = ldap_request_send(ildb->ldap, msg);
if (req == NULL) {
ldb_set_errstring(module->ldb, talloc_asprintf(module, "async send request failed"));
@@ -922,6 +925,10 @@
{
struct ildb_async_context *ac = talloc_get_type(handle->private_data, struct ildb_async_context);
+ if (handle->state == LDB_ASYNC_DONE) {
+ return handle->status;
+ }
+
if (!ac) {
return LDB_ERR_OPERATIONS_ERROR;
}
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c 2006-03-10 15:10:47 UTC (rev 14160)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_ldap/ldb_ldap.c 2006-03-10 15:27:16 UTC (rev 14161)
@@ -87,6 +87,9 @@
h->private_data = (void *)ac;
+ h->state = LDB_ASYNC_INIT;
+ h->status = LDB_SUCCESS;
+
ac->module = module;
ac->context = context;
ac->callback = callback;
@@ -885,12 +888,15 @@
LDAPMessage *result;
int ret = LDB_ERR_OPERATIONS_ERROR;
- if (!ac->msgid) {
+ if (handle->state == LDB_ASYNC_DONE) {
+ return handle->status;
+ }
+
+ if (!ac || !ac->msgid) {
return LDB_ERR_OPERATIONS_ERROR;
}
handle->status = LDB_SUCCESS;
- handle->state = LDB_ASYNC_INIT;
switch(type) {
case LDB_WAIT_NONE:
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_sqlite3/ldb_sqlite3.c 2006-03-10 15:10:47 UTC (rev 14160)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_sqlite3/ldb_sqlite3.c 2006-03-10 15:27:16 UTC (rev 14161)
@@ -57,9 +57,9 @@
int (*callback)(struct ldb_context *, void *, struct ldb_async_result *);
};
-static struct ldb_async_handle *init_lsql_handle(struct lsqlite3_private *lsqlite3, struct ldb_module *module,
- void *context,
- int (*callback)(struct ldb_context *, void *, struct ldb_async_result *))
+static struct ldb_async_handle *init_handle(struct lsqlite3_private *lsqlite3, struct ldb_module *module,
+ void *context,
+ int (*callback)(struct ldb_context *, void *, struct ldb_async_result *))
{
struct lsql_async_context *ac;
struct ldb_async_handle *h;
@@ -81,6 +81,9 @@
h->private_data = (void *)ac;
+ h->state = LDB_ASYNC_INIT;
+ h->status = LDB_SUCCESS;
+
ac->module = module;
ac->context = context;
ac->callback = callback;
@@ -899,7 +902,7 @@
char *query = NULL;
int ret;
- *handle = init_lsql_handle(lsqlite3, module, context, callback);
+ *handle = init_handle(lsqlite3, module, context, callback);
if (*handle == NULL) {
talloc_free(*handle);
return LDB_ERR_OPERATIONS_ERROR;
@@ -1111,7 +1114,7 @@
int i;
int ret = LDB_ERR_OPERATIONS_ERROR;
- *handle = init_lsql_handle(lsqlite3, module, context, callback);
+ *handle = init_handle(lsqlite3, module, context, callback);
if (*handle == NULL) {
goto failed;
}
@@ -1267,7 +1270,7 @@
int i;
int ret = LDB_ERR_OPERATIONS_ERROR;
- *handle = init_lsql_handle(lsqlite3, module, context, callback);
+ *handle = init_handle(lsqlite3, module, context, callback);
if (*handle == NULL) {
goto failed;
}
@@ -1481,7 +1484,7 @@
int ret = LDB_ERR_OPERATIONS_ERROR;
- *handle = init_lsql_handle(lsqlite3, module, context, callback);
+ *handle = init_handle(lsqlite3, module, context, callback);
if (*handle == NULL) {
goto failed;
}
@@ -1559,7 +1562,7 @@
char *query;
int ret = LDB_ERR_OPERATIONS_ERROR;
- *handle = init_lsql_handle(lsqlite3, module, context, callback);
+ *handle = init_handle(lsqlite3, module, context, callback);
if (*handle == NULL) {
goto failed;
}
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c 2006-03-10 15:10:47 UTC (rev 14160)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c 2006-03-10 15:27:16 UTC (rev 14161)
@@ -102,6 +102,9 @@
h->private_data = (void *)ac;
+ h->state = LDB_ASYNC_INIT;
+ h->status = LDB_SUCCESS;
+
ac->module = module;
ac->context = context;
ac->callback = callback;
More information about the samba-cvs
mailing list