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