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;
        }
 

Reply via email to