summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-02-28 13:19:16 +1300
committerAndrew Bartlett <abartlet@samba.org>2014-07-07 23:32:36 +0200
commit288e29b7a9eeee59e85d0b26ca66dd1fc770c6a6 (patch)
treee4491d1e3b32f9832aa120a4d93e0ae5ae8057bd
parent090fb5a517377a5156f299799fadcd6ae7613f42 (diff)
downloadsamba-288e29b7a9eeee59e85d0b26ca66dd1fc770c6a6.tar.gz
samba-288e29b7a9eeee59e85d0b26ca66dd1fc770c6a6.tar.xz
samba-288e29b7a9eeee59e85d0b26ca66dd1fc770c6a6.zip
param: set the flags on a s3 loadparm context
By setting up the flags when we initialize the context, the flags can be accessed by lib/param at any time. Change-Id: I60d4f3a9108560e204cf5f37da9c7d995939e146 Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Nadezhda Ivanova <nivanova@samba.org>
-rw-r--r--lib/param/loadparm.c2
-rw-r--r--lib/param/loadparm.h1
-rw-r--r--lib/param/s3_param.h1
-rw-r--r--source3/param/loadparm.c15
-rw-r--r--source3/param/loadparm_ctx.c1
5 files changed, 19 insertions, 1 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 7e37e3507e..12a5bd13e4 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -2619,6 +2619,8 @@ struct loadparm_context *loadparm_init_s3(TALLOC_CTX *mem_ctx,
}
loadparm_context->s3_fns = s3_fns;
loadparm_context->globals = s3_fns->globals;
+ loadparm_context->flags = s3_fns->flags;
+
return loadparm_context;
}
diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
index ebb3417962..1c59e36b8e 100644
--- a/lib/param/loadparm.h
+++ b/lib/param/loadparm.h
@@ -278,6 +278,7 @@ int lp_find_security(int server_role, int security);
bool lp_is_security_and_server_role_valid(int server_role, int security);
struct loadparm_global * get_globals(void);
+unsigned int * get_flags(void);
char * lp_string(TALLOC_CTX *, const char *);
bool lp_string_set(char **, const char *);
int getservicebyname(const char *, struct loadparm_service *);
diff --git a/lib/param/s3_param.h b/lib/param/s3_param.h
index 77d8599db7..04dd56564a 100644
--- a/lib/param/s3_param.h
+++ b/lib/param/s3_param.h
@@ -22,6 +22,7 @@ struct loadparm_s3_helpers
bool (*lp_do_parameter)(int, const char *, const char *);
bool (*do_section)(const char *pszSectionName, void *userdata);
struct loadparm_global *globals;
+ unsigned int *flags;
};
#endif /* __S3_PARAM_H__ */
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 31f6203dd5..f4ec225626 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -660,7 +660,11 @@ static void init_globals(bool reinit_globals)
ZERO_STRUCT(Globals);
Globals.ctx = talloc_pooled_object(NULL, char, 272, 2048);
- flags_list = talloc_zero_array(Globals.ctx, unsigned int, num_parameters());
+
+ /* Initialize the flags list if necessary */
+ if (flags_list == NULL) {
+ get_flags();
+ }
for (i = 0; parm_table[i].label; i++) {
if ((parm_table[i].type == P_STRING ||
@@ -4627,3 +4631,12 @@ struct loadparm_global * get_globals(void)
{
return &Globals;
}
+
+unsigned int * get_flags(void)
+{
+ if (flags_list == NULL) {
+ flags_list = talloc_zero_array(NULL, unsigned int, num_parameters());
+ }
+
+ return flags_list;
+}
diff --git a/source3/param/loadparm_ctx.c b/source3/param/loadparm_ctx.c
index 8fffe13cec..9f9ccd44c5 100644
--- a/source3/param/loadparm_ctx.c
+++ b/source3/param/loadparm_ctx.c
@@ -83,5 +83,6 @@ const struct loadparm_s3_helpers *loadparm_s3_helpers(void)
struct loadparm_s3_helpers *helpers;
helpers = &s3_fns;
helpers->globals = get_globals();
+ helpers->flags = get_flags();
return helpers;
}