diff options
-rw-r--r-- | source4/scripting/ejs/ejsnet/mpr_user.c | 3 | ||||
-rw-r--r-- | source4/scripting/ejs/ejsnet/net_user.c | 29 |
2 files changed, 14 insertions, 18 deletions
diff --git a/source4/scripting/ejs/ejsnet/mpr_user.c b/source4/scripting/ejs/ejsnet/mpr_user.c index efeb68ffc1..23be089fde 100644 --- a/source4/scripting/ejs/ejsnet/mpr_user.c +++ b/source4/scripting/ejs/ejsnet/mpr_user.c @@ -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; diff --git a/source4/scripting/ejs/ejsnet/net_user.c b/source4/scripting/ejs/ejsnet/net_user.c index 804ca04cd6..ba0bad0953 100644 --- a/source4/scripting/ejs/ejsnet/net_user.c +++ b/source4/scripting/ejs/ejsnet/net_user.c @@ -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: |