svn commit: samba r12147 - in branches/tmp/samba4_ldap_controls/source/lib/ldb: include modules tools

idra at samba.org idra at samba.org
Fri Dec 9 18:13:10 GMT 2005


Author: idra
Date: 2005-12-09 18:13:09 +0000 (Fri, 09 Dec 2005)
New Revision: 12147

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

Log:

use casts as metze suggested


Modified:
   branches/tmp/samba4_ldap_controls/source/lib/ldb/include/ldb.h
   branches/tmp/samba4_ldap_controls/source/lib/ldb/modules/paged_results.c
   branches/tmp/samba4_ldap_controls/source/lib/ldb/tools/ldbtest_controls.c


Changeset:
Modified: branches/tmp/samba4_ldap_controls/source/lib/ldb/include/ldb.h
===================================================================
--- branches/tmp/samba4_ldap_controls/source/lib/ldb/include/ldb.h	2005-12-09 17:49:48 UTC (rev 12146)
+++ branches/tmp/samba4_ldap_controls/source/lib/ldb/include/ldb.h	2005-12-09 18:13:09 UTC (rev 12147)
@@ -255,10 +255,7 @@
 struct ldb_control {
 	const char *oid;
 	BOOL critical;
-	union {
-		void *unknown;
-		struct ldb_paged_control *paged_control;
-	} data;
+	void *data;
 };
 
 struct ldb_credentials;

Modified: branches/tmp/samba4_ldap_controls/source/lib/ldb/modules/paged_results.c
===================================================================
--- branches/tmp/samba4_ldap_controls/source/lib/ldb/modules/paged_results.c	2005-12-09 17:49:48 UTC (rev 12146)
+++ branches/tmp/samba4_ldap_controls/source/lib/ldb/modules/paged_results.c	2005-12-09 18:13:09 UTC (rev 12147)
@@ -128,7 +128,8 @@
 	/* save it locally and remove it from the list */
 	ctrl = req->controls[i];
 	pc_pos = i;
-	paged_ctrl = req->controls[i]->data.paged_control;
+	/* paged_ctrl = talloc_get_type(req->controls[i]->data, struct ldb_paged_control); */
+	paged_ctrl = (struct ldb_paged_control *)req->controls[i]->data;
 	while (req->controls[i]) {
 		req->controls[i] = req->controls[i+1];
 		i++;
@@ -202,7 +203,7 @@
 		talloc_free(paged_result);
 		return LDB_ERR_OTHER;
 	}
-	paged_result->controls[0]->data.paged_control = paged_ret;
+	paged_result->controls[0]->data = paged_ret;
 
 	if (paged_ctrl->size >= current->result->count) {
 		paged_ret->size = 0;

Modified: branches/tmp/samba4_ldap_controls/source/lib/ldb/tools/ldbtest_controls.c
===================================================================
--- branches/tmp/samba4_ldap_controls/source/lib/ldb/tools/ldbtest_controls.c	2005-12-09 17:49:48 UTC (rev 12146)
+++ branches/tmp/samba4_ldap_controls/source/lib/ldb/tools/ldbtest_controls.c	2005-12-09 18:13:09 UTC (rev 12147)
@@ -67,6 +67,7 @@
 	struct ldb_request req;
 	struct ldb_result *result = NULL;
 	struct ldb_control **ctrl;
+	struct ldb_paged_control *paged_control, *paged_result;
 
 	total = 0;
 
@@ -75,11 +76,12 @@
 	ctrl[1] = NULL;
 	ctrl[0]->oid = "1.2.840.113556.1.4.319";
 	ctrl[0]->critical = True;
-	ctrl[0]->data.paged_control = talloc(ctrl[0], struct ldb_paged_control);
-	ctrl[0]->data.paged_control->size = 10;
-	ctrl[0]->data.paged_control->cookie = NULL;
-	ctrl[0]->data.paged_control->cookie_len = 0;
-
+	paged_control = talloc(ctrl[0], struct ldb_paged_control);
+	paged_control->size = 10;
+	paged_control->cookie = NULL;
+	paged_control->cookie_len = 0;
+	ctrl[0]->data = paged_control;
+	
 	req.operation = LDB_REQ_SEARCH;
 	req.op.search.base = basedn;
 	req.op.search.scope = scope;
@@ -119,14 +121,15 @@
 			ldb_ldif_write_file(ldb, stdout, &ldif);
 		}
 
-		if (result->controls[0]->data.paged_control->cookie_len == 0) break;
-		if (ctrl[0]->data.paged_control->cookie)
-				talloc_free(ctrl[0]->data.paged_control->cookie);
-		ctrl[0]->data.paged_control->cookie = 
-					talloc_memdup(ctrl[0]->data.paged_control,
-						      result->controls[0]->data.paged_control->cookie,
-						      result->controls[0]->data.paged_control->cookie_len);
-		ctrl[0]->data.paged_control->cookie_len = result->controls[0]->data.paged_control->cookie_len;
+		/* paged_result = talloc_get_type(result->controls[0]->data, struct ldb_paged_control); */
+		paged_result = (struct ldb_paged_control *)result->controls[0]->data;
+		if (paged_result->cookie_len == 0) break;
+		if (paged_control->cookie)
+				talloc_free(paged_control->cookie);
+		paged_control->cookie = talloc_memdup(paged_control,
+						      paged_result->cookie,
+						      paged_result->cookie_len);
+		paged_control->cookie_len = paged_result->cookie_len;
 		req.op.search.res = NULL;
 	}
 



More information about the samba-cvs mailing list