1
0
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:
Rafal Szczesniak
2007-05-24 21:51:25 +00:00
committed by Gerald (Jerry) Carter
parent 2f16ff04d2
commit b16787a561
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: