summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/param/loadparm_ctx.c6
-rw-r--r--source4/param/loadparm.c4
-rw-r--r--source4/script/mks3param.pl1
3 files changed, 11 insertions, 0 deletions
diff --git a/source3/param/loadparm_ctx.c b/source3/param/loadparm_ctx.c
index 7c59ca709a..2289f6bc29 100644
--- a/source3/param/loadparm_ctx.c
+++ b/source3/param/loadparm_ctx.c
@@ -20,6 +20,11 @@
#include "includes.h"
#include "../source4/param/s3_param.h"
+static bool lp_load_for_s4_ctx(const char *filename)
+{
+ return lp_load(filename, false, false, false, false);
+}
+
/* These are in the order that they appear in the s4 loadparm file.
* All of the s4 loadparm functions should be here eventually, once
* they are implemented in the s3 loadparm, have the same format (enum
@@ -33,6 +38,7 @@ static const struct loadparm_s3_context s3_fns =
.get_servicebynum = lp_servicebynum,
.get_default_loadparm_service = lp_default_loadparm_service,
.get_numservices = lp_numservices,
+ .load = lp_load_for_s4_ctx,
.set_cmdline = lp_set_cmdline,
.server_role = lp_server_role,
diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c
index 3b0eefe603..c1fd5f22a2 100644
--- a/source4/param/loadparm.c
+++ b/source4/param/loadparm.c
@@ -3514,6 +3514,10 @@ bool lpcfg_load(struct loadparm_context *lp_ctx, const char *filename)
char *n2;
bool bRetval;
+ if (lp_ctx->s3_fns) {
+ return lp_ctx->s3_fns->load(filename);
+ }
+
filename = talloc_strdup(lp_ctx, filename);
lp_ctx->szConfigFile = filename;
diff --git a/source4/script/mks3param.pl b/source4/script/mks3param.pl
index 761cd6980f..37277c20b1 100644
--- a/source4/script/mks3param.pl
+++ b/source4/script/mks3param.pl
@@ -92,6 +92,7 @@ sub print_header($$)
$file->("\tstruct loadparm_service * (*get_default_loadparm_service)(void);\n");
$file->("\tstruct loadparm_service * (*get_servicebynum)(int snum);\n");
$file->("\tint (*get_numservices)(void);\n");
+ $file->("\tbool (*load)(const char *filename);\n");
$file->("\tbool (*set_cmdline)(const char *pszParmName, const char *pszParmValue);\n");
}