summaryrefslogtreecommitdiff
path: root/source4/param/loadparm.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-09-27 19:49:53 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:07:22 -0500
commit5e2f9cd8e223368d38d49cf60f199bbd818b8732 (patch)
tree43263022c04d69104bf400dae79f0e00f18c33b7 /source4/param/loadparm.c
parent3bf358c4d1016c4c927cc31ab4dcd44130a07967 (diff)
downloadsamba-5e2f9cd8e223368d38d49cf60f199bbd818b8732.tar.gz
samba-5e2f9cd8e223368d38d49cf60f199bbd818b8732.tar.bz2
samba-5e2f9cd8e223368d38d49cf60f199bbd818b8732.zip
r25379: Use loadparm context parameter in a lot more places.
(This used to be commit 091961b13be665061c7e88ab4e2808c015bc403e)
Diffstat (limited to 'source4/param/loadparm.c')
-rw-r--r--source4/param/loadparm.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c
index f914d706cd..1582eb6075 100644
--- a/source4/param/loadparm.c
+++ b/source4/param/loadparm.c
@@ -66,6 +66,8 @@
static bool bLoaded = false;
+struct loadparm_context *global_loadparm = NULL;
+
#define standard_sub_basic talloc_strdup
static bool do_parameter(const char *, const char *, void *);
@@ -2293,6 +2295,8 @@ bool loadparm_init(struct loadparm_context *lp_ctx)
int i;
char *myname;
+ lp_ctx->bInGlobalSection = true;
+
DEBUG(3, ("Initialising global parameters\n"));
for (i = 0; parm_table[i].label; i++) {
@@ -2458,6 +2462,8 @@ bool lp_load(void)
struct param_opt *data;
struct loadparm_context *lp_ctx = &loadparm;
+ global_loadparm = lp_ctx;
+
bRetval = false;
if (lp_ctx->Globals.param_opt != NULL) {
@@ -2509,22 +2515,20 @@ bool lp_load(void)
Return the max number of services.
***************************************************************************/
-int lp_numservices(void)
+int lp_numservices(struct loadparm_context *lp_ctx)
{
- return loadparm.iNumServices;
+ return lp_ctx->iNumServices;
}
/***************************************************************************
Display the contents of the services array in human-readable form.
***************************************************************************/
-void lp_dump(FILE *f, bool show_defaults, int maxtoprint)
+void lp_dump(struct loadparm_context *lp_ctx, FILE *f, bool show_defaults,
+ int maxtoprint)
{
- struct loadparm_context *lp_ctx;
int iService;
- lp_ctx = &loadparm;
-
if (show_defaults)
defaults_saved = false;
@@ -2549,28 +2553,30 @@ void lp_dump_one(FILE *f, bool show_defaults, struct loadparm_service *service)
}
}
-struct loadparm_service *lp_servicebynum(int snum)
+struct loadparm_service *lp_servicebynum(struct loadparm_context *lp_ctx,
+ int snum)
{
- return loadparm.ServicePtrs[snum];
+ return lp_ctx->ServicePtrs[snum];
}
-struct loadparm_service *lp_service(const char *service_name)
+struct loadparm_service *lp_service(struct loadparm_context *lp_ctx,
+ const char *service_name)
{
int iService;
char *serviceName;
- for (iService = loadparm.iNumServices - 1; iService >= 0; iService--) {
- if (loadparm.ServicePtrs[iService] &&
- loadparm.ServicePtrs[iService]->szService) {
+ for (iService = lp_ctx->iNumServices - 1; iService >= 0; iService--) {
+ if (lp_ctx->ServicePtrs[iService] &&
+ lp_ctx->ServicePtrs[iService]->szService) {
/*
* The substitution here is used to support %U is
* service names
*/
serviceName = standard_sub_basic(
- loadparm.ServicePtrs[iService],
- loadparm.ServicePtrs[iService]->szService);
+ lp_ctx->ServicePtrs[iService],
+ lp_ctx->ServicePtrs[iService]->szService);
if (strequal(serviceName, service_name))
- return loadparm.ServicePtrs[iService];
+ return lp_ctx->ServicePtrs[iService];
}
}