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

source/scripting/ejs/ejsnet/mpr_user.c
source/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: