s3-s4-param: Add hooks for parametric options in the s3/s4 glue layer
authorAndrew Bartlett <abartlet@samba.org>
Mon, 6 Jun 2011 06:47:32 +0000 (16:47 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 6 Jun 2011 08:48:53 +0000 (10:48 +0200)
Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Mon Jun  6 10:48:53 CEST 2011 on sn-devel-104

source3/param/loadparm_ctx.c
source4/param/loadparm.c
source4/script/mks3param.pl

index 3bcf80954a6a9c7a699b3c2aace9f1af1852d36f..cc2468651ae82c56491b9b0c1ea02ec26c60ea25 100644 (file)
@@ -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,
index 2e60ef93b207f676ef5a6f634dbc114bc5a44cd7..fba09fa2c484097c5bc0a8f6b8964f8472eda90f 100644 (file)
@@ -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);
index db494e7eb4ce993a4551c9f76469ffb52d829479..76322b10764904e9ccf24220c942b3bcec01815c 100644 (file)
@@ -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($$)