mirror of
https://github.com/samba-team/samba.git
synced 2025-10-26 23:33:15 +03:00
r23126: this was sitting on my laptop for a while...
change the way the ejs object is being created and return listing context (with status) rather than collecting all entries gathered from libnet call. rafal
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
2f16ff04d2
commit
b16787a561
@@ -101,6 +101,7 @@ done:
|
||||
UserListCtx.ResumeIndex
|
||||
UserListCtx.Count
|
||||
UserListCtx.EndOfList
|
||||
UserListCtx.Status
|
||||
*/
|
||||
struct MprVar mprUserListCtx(TALLOC_CTX *mem_ctx, struct libnet_UserList *list, NTSTATUS result)
|
||||
{
|
||||
@@ -144,6 +145,8 @@ struct MprVar mprUserListCtx(TALLOC_CTX *mem_ctx, struct libnet_UserList *list,
|
||||
status = mprSetVar(&mprListCtx, "ResumeIndex", mprCreateIntegerVar((int)list->out.resume_index));
|
||||
if (!NT_STATUS_IS_OK(status)) goto done;
|
||||
status = mprSetVar(&mprListCtx, "EndOfList", mprCreateBoolVar(endOfList));
|
||||
if (!NT_STATUS_IS_OK(status)) goto done;
|
||||
status = mprSetVar(&mprListCtx, "Status", mprNTSTATUS(result));
|
||||
|
||||
done:
|
||||
return mprListCtx;
|
||||
|
||||
@@ -43,7 +43,7 @@ int ejs_net_userman(MprVarHandle eid, int argc, struct MprVar **argv)
|
||||
{
|
||||
struct libnet_context *ctx;
|
||||
const char *userman_domain = NULL;
|
||||
struct MprVar *obj = NULL;
|
||||
struct MprVar obj;
|
||||
|
||||
/* libnet context */
|
||||
ctx = mprGetThisPtr(eid, "ctx");
|
||||
@@ -74,20 +74,23 @@ int ejs_net_userman(MprVarHandle eid, int argc, struct MprVar **argv)
|
||||
}
|
||||
|
||||
/* create 'net user' subcontext */
|
||||
obj = mprInitObject(eid, "NetUsrCtx", argc, argv);
|
||||
obj = mprObject("NetUsrCtx");
|
||||
|
||||
/* we need to make a copy of the string for this object */
|
||||
userman_domain = talloc_strdup(ctx, userman_domain);
|
||||
|
||||
/* add properties */
|
||||
mprSetPtrChild(obj, "ctx", ctx);
|
||||
mprSetPtrChild(obj, "domain", userman_domain);
|
||||
mprSetPtrChild(&obj, "ctx", ctx);
|
||||
mprSetPtrChild(&obj, "domain", userman_domain);
|
||||
|
||||
/* add methods */
|
||||
mprSetStringCFunction(obj, "Create", ejs_net_createuser);
|
||||
mprSetStringCFunction(obj, "Delete", ejs_net_deleteuser);
|
||||
mprSetStringCFunction(obj, "Info", ejs_net_userinfo);
|
||||
mprSetCFunction(obj, "List", ejs_net_userlist);
|
||||
mprSetStringCFunction(&obj, "Create", ejs_net_createuser);
|
||||
mprSetStringCFunction(&obj, "Delete", ejs_net_deleteuser);
|
||||
mprSetStringCFunction(&obj, "Info", ejs_net_userinfo);
|
||||
mprSetCFunction(&obj, "List", ejs_net_userlist);
|
||||
|
||||
/* set the object returned by this function */
|
||||
mpr_Return(eid, obj);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -347,16 +350,6 @@ static int ejs_net_userlist(MprVarHandle eid, int argc, struct MprVar **argv)
|
||||
req.in.page_size = page_size;
|
||||
|
||||
status = libnet_UserList(ctx, mem_ctx, &req);
|
||||
if (!NT_STATUS_IS_OK(status) &&
|
||||
!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES) &&
|
||||
!NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES)) {
|
||||
|
||||
ejsSetErrorMsg(eid, "%s", req.out.error_string);
|
||||
|
||||
mprListCtx = mprCreateNullVar();
|
||||
goto done;
|
||||
}
|
||||
|
||||
mprListCtx = mprUserListCtx(mem_ctx, &req, status);
|
||||
|
||||
done:
|
||||
|
||||
Reference in New Issue
Block a user