summaryrefslogtreecommitdiffstats
path: root/source3/param
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-03-20 12:57:22 +1300
committerAndrew Bartlett <abartlet@samba.org>2014-07-07 23:32:36 +0200
commit0eacbb6c960da27a12487ae74ca8a53274e416f3 (patch)
tree8064626c175541cef81aa6ed94c2c9bd34cb0498 /source3/param
parent9f519cabfadf0025eefafb938045f9f849cdf3bc (diff)
downloadsamba-0eacbb6c960da27a12487ae74ca8a53274e416f3.tar.gz
samba-0eacbb6c960da27a12487ae74ca8a53274e416f3.tar.xz
samba-0eacbb6c960da27a12487ae74ca8a53274e416f3.zip
param: change snum parameter in special functions to a loadparm_service pointer
Using either an snum or the current service for special functions depending where it was called is unnecessary and complicates the process of handling them generically. idmap parameters now call lpcfg_do_parameter_parametric and are now set like normal. Change-Id: I3eca89791274280f9d3c7b987fbd790c16ec7981 Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Nadezhda Ivanova <nivanova@samba.org>
Diffstat (limited to 'source3/param')
-rw-r--r--source3/param/loadparm.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index fe0c8f56b9..deaba21ee2 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -2367,7 +2367,8 @@ static void init_iconv(void)
***************************************************************************/
static bool bAllowIncludeRegistry = true;
-bool lp_include(struct loadparm_context *lp_ctx, int snum, const char *pszParmValue, char **ptr)
+bool lp_include(struct loadparm_context *lp_ctx, struct loadparm_service *service,
+ const char *pszParmValue, char **ptr)
{
char *fname;
@@ -2400,10 +2401,10 @@ bool lp_include(struct loadparm_context *lp_ctx, int snum, const char *pszParmVa
add_to_file_list(NULL, &file_lists, pszParmValue, fname);
- if (snum < 0) {
+ if (service == NULL) {
string_set(Globals.ctx, ptr, fname);
} else {
- string_set(ServicePtrs[snum], ptr, fname);
+ string_set(service, ptr, fname);
}
if (file_exist(fname)) {
@@ -2577,6 +2578,7 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
TALLOC_CTX *frame = talloc_stackframe();
bool ok;
struct loadparm_context *lp_ctx;
+ struct loadparm_service *service = NULL;
parmnum = lpcfg_map_parameter(pszParmName);
@@ -2643,6 +2645,7 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
}
mem_ctx = ServicePtrs[snum];
+ service = ServicePtrs[snum];
}
lp_ctx = loadparm_init_s3(frame,
@@ -2658,7 +2661,7 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
lp_ctx->bInGlobalSection = bInGlobalSection;
lp_ctx->flags = flags_list;
- ok = set_variable(mem_ctx, snum, parmnum, parm_ptr, pszParmName, pszParmValue,
+ ok = set_variable(mem_ctx, service, parmnum, parm_ptr, pszParmName, pszParmValue,
lp_ctx, (snum < 0));
TALLOC_FREE(frame);