Author: mimir
Date: 2007-01-18 23:21:59 +0000 (Thu, 18 Jan 2007)
New Revision: 20885

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

Log:
- I forgot the page size passed to enumeration function is actually
  size of a buffer for result returned, not number of entries
- pass libnet function returned status to UserListCtx creation
  to properly mark the last chunk of the list


rafal


Modified:
   branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c
   branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c   2007-01-18 
22:08:38 UTC (rev 20884)
+++ branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c   2007-01-18 
23:21:59 UTC (rev 20885)
@@ -100,11 +100,13 @@
   UserListCtx.Users[]
   UserListCtx.ResumeIndex
   UserListCtx.Count
+  UserListCtx.EndOfList
  */
-struct MprVar mprUserListCtx(TALLOC_CTX *mem_ctx, struct libnet_UserList *list)
+struct MprVar mprUserListCtx(TALLOC_CTX *mem_ctx, struct libnet_UserList 
*list, NTSTATUS result)
 {
        const char *name = "UserListCtx";
        NTSTATUS status;
+       bool endOfList;
        struct MprVar mprListCtx, mprUserList;
        struct MprVar mprUser, mprSid, mprUsername;
        int i;
@@ -114,6 +116,9 @@
                goto done;
        }
 
+       endOfList = (NT_STATUS_EQUAL(result, NT_STATUS_NO_MORE_ENTRIES) ||
+                    NT_STATUS_IS_OK(result));
+
        mprUserList = mprArray("Users");
        for (i = 0; i < list->out.count; i++) {
                struct userlist u = list->out.users[i];
@@ -128,7 +133,7 @@
                mprSetVar(&mprUser, "SID", mprSid);
                
                /* add the object to the array being constructed */
-               mprAddArray(&mprUserList, 0, mprUser);
+               mprAddArray(&mprUserList, i, mprUser);
        }
 
        mprListCtx = mprObject(name);
@@ -138,6 +143,7 @@
        if (!NT_STATUS_IS_OK(status)) goto done;
        status = mprSetVar(&mprListCtx, "ResumeIndex", 
mprCreateIntegerVar((int)list->out.resume_index));
        if (!NT_STATUS_IS_OK(status)) goto done;
+       status = mprSetVar(&mprListCtx, "EndOfList", 
mprCreateBoolVar(endOfList));
 
 done:
        return mprListCtx;

Modified: branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c   2007-01-18 
22:08:38 UTC (rev 20884)
+++ branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c   2007-01-18 
23:21:59 UTC (rev 20885)
@@ -299,7 +299,7 @@
        NTSTATUS status;
        struct libnet_context *ctx;
        const char *userlist_domain;
-       int page_size = 10;         /* TODO: this should be specified in a 
nicer way */
+       int page_size = 512;         /* TODO: this should be specified in a 
nicer way */
        struct libnet_UserList req;
        struct MprVar mprListCtx, *mprInListCtx;
        
@@ -359,7 +359,7 @@
                goto done;
        }
 
-       mprListCtx = mprUserListCtx(mem_ctx, &req);
+       mprListCtx = mprUserListCtx(mem_ctx, &req, status);
 
 done:
        talloc_free(mem_ctx);

Reply via email to