summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-02-21 15:13:28 +1300
committerJeremy Allison <jra@samba.org>2014-05-07 19:49:16 +0200
commitf6697ef8dab915a6d44b829112a400f757197354 (patch)
treeff660676a941f5f035028561631a5adf79c4d394
parent384513873173abab21b87f5c3c457c09ee41c888 (diff)
downloadsamba-f6697ef8dab915a6d44b829112a400f757197354.tar.gz
samba-f6697ef8dab915a6d44b829112a400f757197354.tar.xz
samba-f6697ef8dab915a6d44b829112a400f757197354.zip
param: use a single handle_include function between the two loadparms
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--lib/param/loadparm.c14
-rw-r--r--lib/param/loadparm.h1
-rw-r--r--lib/param/s3_param.h1
-rw-r--r--source3/param/loadparm.c3
-rw-r--r--source3/param/loadparm_ctx.c1
5 files changed, 12 insertions, 8 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index a707753a3e..f4ee64973c 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -91,10 +91,6 @@ static bool defaults_saved = false;
#define N_(x) x
#endif
-/* prototypes for the special type handlers */
-static bool handle_include(struct loadparm_context *lp_ctx, int unused,
- const char *pszParmValue, char **ptr);
-
#include "lib/param/param_table.c"
/* local variables */
@@ -1105,10 +1101,16 @@ bool handle_realm(struct loadparm_context *lp_ctx, int unused,
Handle the include operation.
***************************************************************************/
-static bool handle_include(struct loadparm_context *lp_ctx, int unused,
+bool handle_include(struct loadparm_context *lp_ctx, int unused,
const char *pszParmValue, char **ptr)
{
- char *fname = standard_sub_basic(lp_ctx, pszParmValue);
+ char *fname;
+
+ if (lp_ctx->s3_fns) {
+ return lp_ctx->s3_fns->lp_include(lp_ctx, unused, pszParmValue, ptr);
+ }
+
+ fname = standard_sub_basic(lp_ctx, pszParmValue);
add_to_file_list(lp_ctx, &lp_ctx->file_lists, pszParmValue, fname);
diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
index c9baed5c7c..70443a97ea 100644
--- a/lib/param/loadparm.h
+++ b/lib/param/loadparm.h
@@ -263,6 +263,7 @@ struct loadparm_global * get_globals(void);
char * lp_string(TALLOC_CTX *, const char *);
bool lp_string_set(char **, const char *);
int getservicebyname(const char *, struct loadparm_service *);
+bool lp_include(struct loadparm_context *, int, const char *, char **);
/**
* Check if two parameters are equal.
diff --git a/lib/param/s3_param.h b/lib/param/s3_param.h
index 4ec922f07b..27ad192f74 100644
--- a/lib/param/s3_param.h
+++ b/lib/param/s3_param.h
@@ -16,6 +16,7 @@ struct loadparm_s3_helpers
void (*dump)(FILE *f, bool show_defaults, int maxtoprint);
char * (*lp_string)(TALLOC_CTX *ctx, const char *in);
bool (*lp_string_set)(char **dest, const char *src);
+ bool (*lp_include)(struct loadparm_context*, int, const char *, char **);
struct loadparm_global *globals;
};
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 3f16b57b69..554106e25b 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -261,7 +261,6 @@ static struct file_lists *file_lists = NULL;
#define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct))
/* prototypes for the special type handlers */
-static bool handle_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
static bool handle_idmap_backend(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
static bool handle_idmap_uid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
static bool handle_idmap_gid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
@@ -2470,7 +2469,7 @@ static bool handle_netbios_aliases(struct loadparm_context *unused, int snum, co
***************************************************************************/
static bool bAllowIncludeRegistry = true;
-static bool handle_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
+bool lp_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
{
char *fname;
diff --git a/source3/param/loadparm_ctx.c b/source3/param/loadparm_ctx.c
index d13304ff21..b6e185e653 100644
--- a/source3/param/loadparm_ctx.c
+++ b/source3/param/loadparm_ctx.c
@@ -71,6 +71,7 @@ static struct loadparm_s3_helpers s3_fns =
.dump = lp_dump,
.lp_string = lp_string,
.lp_string_set = lp_string_set,
+ .lp_include = lp_include,
};
const struct loadparm_s3_helpers *loadparm_s3_helpers(void)