svn commit: samba r26581 - in branches/SAMBA_4_0/source/lib/ldb/modules: .

idra at samba.org idra at samba.org
Mon Dec 24 01:38:38 GMT 2007


Author: idra
Date: 2007-12-24 01:38:37 +0000 (Mon, 24 Dec 2007)
New Revision: 26581

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26581

Log:

Make ldb_wait uniform, so that it is easy to remove it completely from modules
later on.



Modified:
   branches/SAMBA_4_0/source/lib/ldb/modules/asq.c
   branches/SAMBA_4_0/source/lib/ldb/modules/paged_results.c
   branches/SAMBA_4_0/source/lib/ldb/modules/paged_searches.c
   branches/SAMBA_4_0/source/lib/ldb/modules/rdn_name.c
   branches/SAMBA_4_0/source/lib/ldb/modules/sort.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/modules/asq.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/modules/asq.c	2007-12-24 01:28:22 UTC (rev 26580)
+++ branches/SAMBA_4_0/source/lib/ldb/modules/asq.c	2007-12-24 01:38:37 UTC (rev 26581)
@@ -429,27 +429,26 @@
 	return asq_search_continue(h);
 }
 
-static int asq_wait_all(struct ldb_handle *handle)
+static int asq_wait(struct ldb_handle *handle, enum ldb_wait_type type)
 {
 	int ret;
 
-	while (handle->state != LDB_ASYNC_DONE) {
-		ret = asq_search_continue(handle);
-		if (ret != LDB_SUCCESS) {
-			return ret;
-		}
+	if (!handle || !handle->private_data) {
+		return LDB_ERR_OPERATIONS_ERROR;
 	}
 
-	return handle->status;
-}
-
-static int asq_wait(struct ldb_handle *handle, enum ldb_wait_type type)
-{
 	if (type == LDB_WAIT_ALL) {
-		return asq_wait_all(handle);
-	} else {
-		return asq_search_continue(handle);
+		while (handle->state != LDB_ASYNC_DONE) {
+			ret = asq_search_continue(handle);
+			if (ret != LDB_SUCCESS) {
+				return ret;
+			}
+		}
+
+		return handle->status;
 	}
+
+	return asq_search_continue(handle);
 }
 
 static int asq_init(struct ldb_module *module)

Modified: branches/SAMBA_4_0/source/lib/ldb/modules/paged_results.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/modules/paged_results.c	2007-12-24 01:28:22 UTC (rev 26580)
+++ branches/SAMBA_4_0/source/lib/ldb/modules/paged_results.c	2007-12-24 01:38:37 UTC (rev 26581)
@@ -440,8 +440,7 @@
 	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 @@
 		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 @@
 	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;

Modified: branches/SAMBA_4_0/source/lib/ldb/modules/paged_searches.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/modules/paged_searches.c	2007-12-24 01:28:22 UTC (rev 26580)
+++ branches/SAMBA_4_0/source/lib/ldb/modules/paged_searches.c	2007-12-24 01:38:37 UTC (rev 26581)
@@ -312,7 +312,7 @@
 	return ldb_next_request(handle->module, ac->new_req);
 }
 
-static int ps_wait_none(struct ldb_handle *handle)
+static int ps_wait_once(struct ldb_handle *handle)
 {
 	struct ps_context *ac;
 	int ret;
@@ -365,27 +365,25 @@
 	return ret;
 }
 
-static int ps_wait_all(struct ldb_handle *handle)
+static int ps_wait(struct ldb_handle *handle, enum ldb_wait_type type)
 {
 	int ret;
 
-	while (handle->state != LDB_ASYNC_DONE) {
-		ret = ps_wait_none(handle);
-		if (ret != LDB_SUCCESS) {
-			return ret;
-		}
+	if (!handle || !handle->private_data) {
+		return LDB_ERR_OPERATIONS_ERROR;
 	}
 
-	return handle->status;
-}
-
-static int ps_wait(struct ldb_handle *handle, enum ldb_wait_type type)
-{
 	if (type == LDB_WAIT_ALL) {
-		return ps_wait_all(handle);
-	} else {
-		return ps_wait_none(handle);
+		while (handle->state != LDB_ASYNC_DONE) {
+			ret = ps_wait_once(handle);
+			if (ret != LDB_SUCCESS) {
+				return ret;
+			}
+		}
+
+		return handle->status;
 	}
+	return ps_wait_once(handle);
 }
 
 static int check_supported_paged(struct ldb_context *ldb, void *context, 

Modified: branches/SAMBA_4_0/source/lib/ldb/modules/rdn_name.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/modules/rdn_name.c	2007-12-24 01:28:22 UTC (rev 26580)
+++ branches/SAMBA_4_0/source/lib/ldb/modules/rdn_name.c	2007-12-24 01:38:37 UTC (rev 26581)
@@ -238,7 +238,7 @@
 	return ldb_request(h->module->ldb, ac->mod_req);
 }
 
-static int rename_wait(struct ldb_handle *handle)
+static int rdn_name_wait_once(struct ldb_handle *handle)
 {
 	struct rename_context *ac;
 	int ret;
@@ -304,29 +304,28 @@
 	return ret;
 }
 
-static int rename_wait_all(struct ldb_handle *handle) {
-
+static int rdn_name_wait(struct ldb_handle *handle, enum ldb_wait_type type)
+{
 	int ret;
+ 
+	if (!handle || !handle->private_data) {
+		return LDB_ERR_OPERATIONS_ERROR;
+	}
 
-	while (handle->state != LDB_ASYNC_DONE) {
-		ret = rename_wait(handle);
-		if (ret != LDB_SUCCESS) {
-			return ret;
+	if (type == LDB_WAIT_ALL) {
+		while (handle->state != LDB_ASYNC_DONE) {
+			ret = rdn_name_wait_once(handle);
+			if (ret != LDB_SUCCESS) {
+				return ret;
+			}
 		}
+
+		return handle->status;
 	}
 
-	return handle->status;
+	return rdn_name_wait_once(handle);
 }
 
-static int rdn_name_wait(struct ldb_handle *handle, enum ldb_wait_type type)
-{
-	if (type == LDB_WAIT_ALL) {
-		return rename_wait_all(handle);
-	} else {
-		return rename_wait(handle);
-	}
-}
-
 static const struct ldb_module_ops rdn_name_ops = {
 	.name              = "rdn_name",
 	.add               = rdn_name_add,

Modified: branches/SAMBA_4_0/source/lib/ldb/modules/sort.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/modules/sort.c	2007-12-24 01:28:22 UTC (rev 26580)
+++ branches/SAMBA_4_0/source/lib/ldb/modules/sort.c	2007-12-24 01:38:37 UTC (rev 26581)
@@ -373,7 +373,7 @@
 	return LDB_SUCCESS;
 }
 
-static int server_sort_wait(struct ldb_handle *handle, enum ldb_wait_type type)
+static int server_sort_wait_once(struct ldb_handle *handle)
 {
 	struct sort_context *ac;
 	int ret;
@@ -384,7 +384,7 @@
 
 	ac = talloc_get_type(handle->private_data, struct sort_context);
 
-	ret = ldb_wait(ac->req->handle, type);
+	ret = ldb_wait(ac->req->handle, LDB_WAIT_NONE);
 
 	if (ret != LDB_SUCCESS) {
 		handle->status = ret;
@@ -405,6 +405,28 @@
 	return ret;
 }
 
+static int server_sort_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 = server_sort_wait_once(handle);
+			if (ret != LDB_SUCCESS) {
+				return ret;
+			}
+		}
+
+		return handle->status;
+	}
+
+	return server_sort_wait_once(handle);
+}
+
 static int server_sort_init(struct ldb_module *module)
 {
 	struct ldb_request *req;



More information about the samba-cvs mailing list