summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2011-06-06 16:47:32 +1000
committerAndrew Bartlett <abartlet@samba.org>2011-06-06 10:48:53 +0200
commitb9108cac529dac4b4b392fab4bac4fd0e6da1b4b (patch)
tree6afa91bd75615e3f41e5865f36723fc5d1242a27
parentd72b05cfe7d5c020fa32c8906f6185e1427e0a88 (diff)
downloadsamba-b9108cac529dac4b4b392fab4bac4fd0e6da1b4b.tar.gz
samba-b9108cac529dac4b4b392fab4bac4fd0e6da1b4b.tar.bz2
samba-b9108cac529dac4b4b392fab4bac4fd0e6da1b4b.zip
s3-s4-param: Add hooks for parametric options in the s3/s4 glue layer
Autobuild-User: Andrew Bartlett <abartlet@samba.org> Autobuild-Date: Mon Jun 6 10:48:53 CEST 2011 on sn-devel-104
-rw-r--r--source3/param/loadparm_ctx.c26
-rw-r--r--source4/param/loadparm.c5
-rw-r--r--source4/script/mks3param.pl1
3 files changed, 32 insertions, 0 deletions
diff --git a/source3/param/loadparm_ctx.c b/source3/param/loadparm_ctx.c
index 3bcf80954a..cc2468651a 100644
--- a/source3/param/loadparm_ctx.c
+++ b/source3/param/loadparm_ctx.c
@@ -1,12 +1,38 @@
+/*
+ Unix SMB/CIFS implementation.
+ Parameter loading functions
+ Copyright (C) Andrew Bartlett 2011
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
#include "includes.h"
#include "../source4/param/s3_param.h"
+static const char *get_parametric(const char *type, const char *option)
+{
+ return lp_parm_const_string(-1, type, option, NULL);
+}
+
/* 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
* values in particular) and defaults. */
static const struct loadparm_s3_context s3_fns =
{
+ .get_parametric = get_parametric,
+
.server_role = lp_server_role,
.winbind_separator = lp_winbind_separator,
diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c
index 2e60ef93b2..fba09fa2c4 100644
--- a/source4/param/loadparm.c
+++ b/source4/param/loadparm.c
@@ -815,6 +815,11 @@ const char *lpcfg_get_parametric(struct loadparm_context *lp_ctx,
if (lp_ctx == NULL)
return NULL;
+ if (lp_ctx->s3_fns) {
+ SMB_ASSERT(service == NULL);
+ return lp_ctx->s3_fns->get_parametric(type, option);
+ }
+
data = (service == NULL ? lp_ctx->globals->param_opt : service->param_opt);
vfskey_tmp = talloc_asprintf(NULL, "%s:%s", type, option);
diff --git a/source4/script/mks3param.pl b/source4/script/mks3param.pl
index db494e7eb4..76322b1076 100644
--- a/source4/script/mks3param.pl
+++ b/source4/script/mks3param.pl
@@ -84,6 +84,7 @@ sub print_header($$)
$file->("/* This file was automatically generated by mks3param.pl. DO NOT EDIT */\n\n");
$file->("struct loadparm_s3_context\n");
$file->("{\n");
+ $file->("\tconst char * (*get_parametric)(const char *type, const char *option);");
}
sub print_footer($$)