r23126: this was sitting on my laptop for a while...
authorRafal Szczesniak <mimir@samba.org>
Thu, 24 May 2007 21:51:25 +0000 (21:51 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:52:52 +0000 (14:52 -0500)
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 b16787a56120498c985f2617f43250df725c285a)

source4/scripting/ejs/ejsnet/mpr_user.c
source4/scripting/ejs/ejsnet/net_user.c

index efeb68ffc1de1fd9c1ca9d0cdfe50fdfa4782934..23be089fde2ea595ce7ce35385aad3434c5a425a 100644 (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;
index 804ca04cd6ddaeb6c34b61515a13957449998e3f..ba0bad09531f6ab4146f41f22bd235ced3f0a77e 100644 (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: