summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-07-20 07:29:23 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:29:48 -0500
commitd5ac1f9bf4062139054fa2b4677f6bde952bec13 (patch)
tree3446de75dba1c6bb6f37155481a44b273b131fe3
parent86d628a292a22973597e0c06d4a36e20c58ae31c (diff)
downloadsamba-d5ac1f9bf4062139054fa2b4677f6bde952bec13.tar.gz
samba-d5ac1f9bf4062139054fa2b4677f6bde952bec13.tar.xz
samba-d5ac1f9bf4062139054fa2b4677f6bde952bec13.zip
r8640: continue the trend by moving the ejs random calls into an object
(This used to be commit ed4fb68ef7c28e415408e923bd9eefcd2d60f355)
-rw-r--r--source4/scripting/ejs/smbcalls_rand.c19
-rw-r--r--source4/scripting/libjs/provision.js2
-rw-r--r--swat/install/newuser.esp3
3 files changed, 19 insertions, 5 deletions
diff --git a/source4/scripting/ejs/smbcalls_rand.c b/source4/scripting/ejs/smbcalls_rand.c
index 81473ad7376..043b9cca09a 100644
--- a/source4/scripting/ejs/smbcalls_rand.c
+++ b/source4/scripting/ejs/smbcalls_rand.c
@@ -81,12 +81,23 @@ static int ejs_randsid(MprVarHandle eid, int argc, struct MprVar **argv)
}
/*
+ initialise random ejs subsystem
+*/
+static int ejs_random_init(MprVarHandle eid, int argc, struct MprVar **argv)
+{
+ struct MprVar *obj = mprInitObject(eid, "random", argc, argv);
+
+ mprSetCFunction(obj, "random", ejs_random);
+ mprSetCFunction(obj, "randpass", ejs_randpass);
+ mprSetCFunction(obj, "randguid", ejs_randguid);
+ mprSetCFunction(obj, "randsid", ejs_randsid);
+ return 0;
+}
+
+/*
setup C functions that be called from ejs
*/
void smb_setup_ejs_random(void)
{
- ejsDefineCFunction(-1, "random", ejs_random, NULL, MPR_VAR_SCRIPT_HANDLE);
- ejsDefineCFunction(-1, "randpass", ejs_randpass, NULL, MPR_VAR_SCRIPT_HANDLE);
- ejsDefineCFunction(-1, "randguid", ejs_randguid, NULL, MPR_VAR_SCRIPT_HANDLE);
- ejsDefineCFunction(-1, "randsid", ejs_randsid, NULL, MPR_VAR_SCRIPT_HANDLE);
+ ejsDefineCFunction(-1, "random_init", ejs_random_init, NULL, MPR_VAR_SCRIPT_HANDLE);
}
diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js
index e9a8aad0cca..58f0e182408 100644
--- a/source4/scripting/libjs/provision.js
+++ b/source4/scripting/libjs/provision.js
@@ -224,6 +224,7 @@ function provision_guess()
var subobj = new Object();
var nss = nss_init();
var lp = loadparm_init();
+ random_init(local);
subobj.REALM = lp.get("realm");
subobj.DOMAIN = lp.get("workgroup");
@@ -277,6 +278,7 @@ function newuser(username, unixname, password, message)
var lp = loadparm_init();
var samdb = lp.get("sam database");
var ldb = ldb_init();
+ random_init(local);
/* connect to the sam */
var ok = ldb.connect(samdb);
diff --git a/swat/install/newuser.esp b/swat/install/newuser.esp
index 21a2cb361bf..42c109df6bc 100644
--- a/swat/install/newuser.esp
+++ b/swat/install/newuser.esp
@@ -9,6 +9,7 @@
<%
var f = FormObj("newuser", 3, 2);
var i;
+var rand = random_init();
f.element[0].label = "User Name";
f.element[0].name = "USERNAME";
@@ -29,7 +30,7 @@ if (form['submit'] == "Add" &&
form.UNIXNAME = form.USERNAME;
}
if (form.PASSWORD == undefined) {
- form.PASSWORD = randpass();
+ form.PASSWORD = rand.randpass();
}
newuser(form.USERNAME, form.UNIXNAME, form.PASSWORD, writefln);
} else {