svn commit: samba r9477 - in branches/SAMBA_4_0/source: scripting/bin scripting/ejs setup

mimir at samba.org mimir at samba.org
Mon Aug 22 14:32:59 GMT 2005


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;
 }
 



More information about the samba-cvs mailing list