diff options
author | Rafal Szczesniak <mimir@samba.org> | 2007-01-18 23:21:59 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:43:45 -0500 |
commit | c1aac87d34a9596e449a4baa661b44009552b5b4 (patch) | |
tree | 8ea270959c2144d610d976b1c67143e871fef038 /source4/scripting/ejs/ejsnet/mpr_user.c | |
parent | 875d8b4109ddc2c6b5d0ba33a3874e73b249ec91 (diff) | |
download | samba-c1aac87d34a9596e449a4baa661b44009552b5b4.tar.gz samba-c1aac87d34a9596e449a4baa661b44009552b5b4.tar.bz2 samba-c1aac87d34a9596e449a4baa661b44009552b5b4.zip |
r20885: - 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
(This used to be commit 05d307546f93794a0a981c3aa942669b9b18afd1)
Diffstat (limited to 'source4/scripting/ejs/ejsnet/mpr_user.c')
-rw-r--r-- | source4/scripting/ejs/ejsnet/mpr_user.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source4/scripting/ejs/ejsnet/mpr_user.c b/source4/scripting/ejs/ejsnet/mpr_user.c index 9a49262dc6..efeb68ffc1 100644 --- a/source4/scripting/ejs/ejsnet/mpr_user.c +++ b/source4/scripting/ejs/ejsnet/mpr_user.c @@ -100,11 +100,13 @@ done: 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 @@ struct MprVar mprUserListCtx(TALLOC_CTX *mem_ctx, struct libnet_UserList *list) 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 @@ struct MprVar mprUserListCtx(TALLOC_CTX *mem_ctx, struct libnet_UserList *list) 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 @@ struct MprVar mprUserListCtx(TALLOC_CTX *mem_ctx, struct libnet_UserList *list) 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; |