1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +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 used to be commit b16787a561)
This commit is contained in:
Rafal Szczesniak 2007-05-24 21:51:25 +00:00 committed by Gerald (Jerry) Carter
parent b0a1cf01e3
commit c64358e339
2 changed files with 14 additions and 18 deletions

View File

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

View File

@ -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: