Author: mimir
Date: 2005-08-22 14:32:58 +0000 (Mon, 22 Aug 2005)
New Revision: 9477

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9477

Log:
Convert popt options to an ejs object. Doesn't seem to break anything
except of popt help (-h) option (unexpected ?).


rafal


Modified:
   branches/SAMBA_4_0/source/scripting/bin/smbstatus
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls_auth.c
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls_creds.c
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls_options.c
   branches/SAMBA_4_0/source/setup/newuser
   branches/SAMBA_4_0/source/setup/provision


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/bin/smbstatus
===================================================================
--- branches/SAMBA_4_0/source/scripting/bin/smbstatus   2005-08-22 14:07:52 UTC 
(rev 9476)
+++ branches/SAMBA_4_0/source/scripting/bin/smbstatus   2005-08-22 14:32:58 UTC 
(rev 9477)
@@ -11,12 +11,12 @@
 
 var options = new Object();
 
-ok = GetOptions(ARGV, options,
+options = GetOptions(ARGV,
                "POPT_AUTOHELP",
                "POPT_COMMON_SAMBA",
                "POPT_COMMON_VERSION",
                "nbt");
-if (ok == false) {
+if (options == undefined) {
        println("Failed to parse options: " + options.ERROR);
        return -1;
 }

Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_auth.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_auth.c     2005-08-22 
14:07:52 UTC (rev 9476)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_auth.c     2005-08-22 
14:32:58 UTC (rev 9477)
@@ -105,16 +105,19 @@
        const char *password;
        const char *domain;
        const char *remote_host;
-       struct MprVar auth;
+       struct MprVar auth, *creds_obj;
+       struct cli_credentials *creds;
 
        if (argc != 1 || argv[0]->type != MPR_TYPE_OBJECT) {
                ejsSetErrorMsg(eid, "userAuth invalid arguments, this function 
requires an object.");
                return -1;
        }
 
-       username = mprToString(mprGetProperty(argv[0], "username", NULL));
-       password = mprToString(mprGetProperty(argv[0], "password", NULL));
-       domain = mprToString(mprGetProperty(argv[0], "domain", NULL));
+       /* get credential values from credentials object */
+       creds = mprGetPtr(argv[0], "creds");
+       username    = cli_credentials_get_username(creds);
+       password    = cli_credentials_get_password(creds);
+       domain      = cli_credentials_get_domain(creds);
        remote_host = mprToString(mprGetProperty(argv[0], "rhost", NULL));
 
        if (username == NULL || password == NULL || domain == NULL) {

Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_creds.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_creds.c    2005-08-22 
14:07:52 UTC (rev 9476)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_creds.c    2005-08-22 
14:32:58 UTC (rev 9477)
@@ -23,6 +23,7 @@
 #include "includes.h"
 #include "scripting/ejs/smbcalls.h"
 #include "lib/appweb/ejs/ejs.h"
+#include "lib/cmdline/popt_common.h"
 
 /*
   helper function to get the local objects credentials ptr
@@ -184,20 +185,10 @@
 /*
   initialise credentials ejs object
 */
-static int ejs_credentials_init(MprVarHandle eid, int argc, struct MprVar 
**argv)
+static int ejs_credentials_obj(MprVarHandle eid, int argc, struct MprVar 
**argv, struct cli_credentials *creds)
 {
        struct MprVar *obj = mprInitObject(eid, "credentials", argc, argv);
-       struct cli_credentials *creds;
 
-       creds = cli_credentials_init(mprMemCtx());
-       if (creds == NULL) {
-               return -1;
-       }
-
-       cli_credentials_guess(creds);
-       cli_credentials_set_username(creds, "", CRED_GUESSED);
-       cli_credentials_set_password(creds, "", CRED_GUESSED);
-
        mprSetPtrChild(obj, "creds", creds);
 
        /* setup our object methods */
@@ -217,6 +208,30 @@
 
 
 /*
+  initialise credentials ejs object
+*/
+static int ejs_credentials_init(MprVarHandle eid, int argc, struct MprVar 
**argv)
+{
+       struct cli_credentials *creds;
+
+       creds = cli_credentials_init(mprMemCtx());
+       if (creds == NULL) {
+               return -1;
+       }
+
+       return ejs_credentials_obj(eid, argc, argv, creds);
+}
+
+/*
+  initialise cmdline credentials ejs object
+*/
+int ejs_credentials_cmdline(int eid, int argc, struct MprVar **argv)
+{
+       return ejs_credentials_obj(eid, argc, argv, cmdline_credentials);
+}
+
+
+/*
   setup C functions that be called from ejs
 */
 void smb_setup_ejs_credentials(void)

Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_options.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_options.c  2005-08-22 
14:07:52 UTC (rev 9476)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_options.c  2005-08-22 
14:32:58 UTC (rev 9477)
@@ -28,8 +28,7 @@
 
 /*
   usage:
-      var options = new Object();
-      result = GetOptions(argv, options, 
+      options = GetOptions(argv, 
                           "realm=s", 
                           "enablexx", 
                           "myint=i");
@@ -41,6 +40,7 @@
 
       additional command line arguments are placed in options.ARGV
 */
+
 static int ejs_GetOptions(MprVarHandle eid, int argc, struct MprVar **argv)
 {
        poptContext pc;
@@ -52,13 +52,15 @@
        } tables[] = {
                { "POPT_AUTOHELP", poptHelpOptions, "Help options:" },
                { "POPT_COMMON_SAMBA", popt_common_samba, "Common Samba 
options:" },
-               { "POPT_COMMON_CONNECTION", popt_common_connection, "Connection 
options:" },
+               { "POPT_COMMON_CONNECTION", popt_common_connection, "Connection 
options:" },
                { "POPT_COMMON_CREDENTIALS", popt_common_credentials, 
"Authentication options:" },
                { "POPT_COMMON_VERSION", popt_common_version, "Common Samba 
options:" }
        };
+
+       struct MprVar *options = mprInitObject(eid, "options", 0, NULL);
+
        TALLOC_CTX *tmp_ctx = talloc_new(mprMemCtx());
        struct poptOption *long_options = NULL;
-       struct MprVar *options;
        int i, num_options = 0;
        int opt_argc;
        const char **opt_argv;
@@ -66,15 +68,12 @@
        const int BASE_OPTNUM = 0x100000;
 
        /* validate arguments */
-       if (argc < 2 ||
-           argv[0]->type != MPR_TYPE_OBJECT ||
-           argv[1]->type != MPR_TYPE_OBJECT) {
+       if (argc < 1 || argv[0]->type != MPR_TYPE_OBJECT) {
                ejsSetErrorMsg(eid, "GetOptions invalid arguments");
                return -1;
        }
 
        opt_argv = mprToArray(tmp_ctx, argv[0]);
-       options  = argv[1];
        opt_argc = str_list_length(opt_argv);
 
        long_options = talloc_array(tmp_ctx, struct poptOption, 1);
@@ -178,7 +177,10 @@
        poptFreeContext(pc);
 
        talloc_free(tmp_ctx);
-       mpr_Return(eid, mprCreateBoolVar(1));
+
+       /* setup methods */
+       mprSetCFunction(options, "get_credentials", ejs_credentials_cmdline);
+
        return 0;
 }
 

Modified: branches/SAMBA_4_0/source/setup/newuser
===================================================================
--- branches/SAMBA_4_0/source/setup/newuser     2005-08-22 14:07:52 UTC (rev 
9476)
+++ branches/SAMBA_4_0/source/setup/newuser     2005-08-22 14:32:58 UTC (rev 
9477)
@@ -6,8 +6,7 @@
        Released under the GNU GPL v2 or later
 */
 
-options = new Object();
-ok = GetOptions(ARGV, options, 
+options = GetOptions(ARGV,
                "POPT_AUTOHELP",
                "POPT_COMMON_SAMBA",
                "POPT_COMMON_VERSION",
@@ -15,7 +14,8 @@
                'unixname=s',
                'password=s',
                'quiet');
-if (ok == false) {
+
+if (options == undefined) {
    println("Failed to parse options: " + options.ERROR);
    return -1;
 }

Modified: branches/SAMBA_4_0/source/setup/provision
===================================================================
--- branches/SAMBA_4_0/source/setup/provision   2005-08-22 14:07:52 UTC (rev 
9476)
+++ branches/SAMBA_4_0/source/setup/provision   2005-08-22 14:32:58 UTC (rev 
9477)
@@ -6,8 +6,7 @@
        Released under the GNU GPL v2 or later
 */
 
-options = new Object();
-ok = GetOptions(ARGV, options, 
+options = GetOptions(ARGV,
                "POPT_AUTOHELP",
                "POPT_COMMON_SAMBA",
                "POPT_COMMON_VERSION",
@@ -29,8 +28,9 @@
                'users=s',
                'quiet',
                 'blank');
-if (ok == false) {
-   println("Failed to parse options: " + options.ERROR);
+
+if (options == undefined) {
+   println("Failed to parse options: ", options.ERROR);
    return -1;
 }
 

Reply via email to