summaryrefslogtreecommitdiff
path: root/source4/scripting/ejs
diff options
context:
space:
mode:
Diffstat (limited to 'source4/scripting/ejs')
-rw-r--r--source4/scripting/ejs/smbcalls_config.c14
-rw-r--r--source4/scripting/ejs/smbscript.c6
2 files changed, 16 insertions, 4 deletions
diff --git a/source4/scripting/ejs/smbcalls_config.c b/source4/scripting/ejs/smbcalls_config.c
index 157587186c..88c153ead3 100644
--- a/source4/scripting/ejs/smbcalls_config.c
+++ b/source4/scripting/ejs/smbcalls_config.c
@@ -161,6 +161,14 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
return 0;
}
+/*
+ v = lp.filename(); obtain filename
+*/
+static int ejs_lpFilename(MprVarHandle eid, int argc, char **argv)
+{
+ mpr_ReturnString(eid, lp_configfile(global_loadparm));
+ return 0;
+}
/*
set a smb.conf parameter. Only sets in memory, not permanent
@@ -188,8 +196,9 @@ static int ejs_lpSet(MprVarHandle eid, int argc, char **argv)
static int ejs_lpReload(MprVarHandle eid, int argc, char **argv)
{
bool ret;
-
- ret = lp_load(talloc_autofree_context(), lp_configfile(global_loadparm), NULL);
+ const char *filename = lp_configfile(global_loadparm);
+
+ ret = lp_load(global_loadparm, filename);
if (ret) {
unload_interfaces();
}
@@ -208,6 +217,7 @@ static int ejs_loadparm_init(MprVarHandle eid, int argc, struct MprVar **argv)
mprSetStringCFunction(obj, "set", ejs_lpSet);
mprSetStringCFunction(obj, "reload", ejs_lpReload);
mprSetStringCFunction(obj, "services", ejs_lpServices);
+ mprSetStringCFunction(obj, "filename", ejs_lpFilename);
return 0;
}
diff --git a/source4/scripting/ejs/smbscript.c b/source4/scripting/ejs/smbscript.c
index e00d52589a..a4f2e1cd43 100644
--- a/source4/scripting/ejs/smbscript.c
+++ b/source4/scripting/ejs/smbscript.c
@@ -53,10 +53,12 @@ int main(int argc, const char **argv)
fault_setup(argv[0]);
+ global_loadparm = lp_ctx = loadparm_init(talloc_autofree_context());
+
if (getenv("SMB_CONF_PATH")) {
- lp_load(talloc_autofree_context(), getenv("SMB_CONF_PATH"), &lp_ctx);
+ lp_load(lp_ctx, getenv("SMB_CONF_PATH"));
} else {
- lp_load(talloc_autofree_context(), dyn_CONFIGFILE, &lp_ctx);
+ lp_load(lp_ctx, dyn_CONFIGFILE);
}
ldb_global_init();