Author: mimir Date: 2007-05-24 21:51:25 +0000 (Thu, 24 May 2007) New Revision: 23126
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23126 Log: 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 Modified: branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c Changeset: Modified: branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c =================================================================== --- branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c 2007-05-24 21:45:29 UTC (rev 23125) +++ branches/SAMBA_4_0/source/scripting/ejs/ejsnet/mpr_user.c 2007-05-24 21:51:25 UTC (rev 23126) @@ -101,6 +101,7 @@ 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 @@ 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; Modified: branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c =================================================================== --- branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c 2007-05-24 21:45:29 UTC (rev 23125) +++ branches/SAMBA_4_0/source/scripting/ejs/ejsnet/net_user.c 2007-05-24 21:51:25 UTC (rev 23126) @@ -43,7 +43,7 @@ { struct libnet_context *ctx; const char *userman_domain = NULL; - struct MprVar *obj = NULL; + struct MprVar obj; /* libnet context */ ctx = mprGetThisPtr(eid, "ctx"); @@ -74,21 +74,24 @@ } /* 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 @@ 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: