From db19d744799d44ced56d33553194b603691f6822 Mon Sep 17 00:00:00 2001 From: Garming Sam Date: Mon, 24 Feb 2014 10:38:37 +1300 Subject: [PATCH] param: use a single special handler for idmap parameters Signed-off-by: Garming Sam Reviewed-by: Andrew Bartlett Reviewed-by: Jeremy Allison --- lib/param/loadparm.c | 38 +++++++++++++++++++++++++++++++------- source3/param/loadparm.c | 30 ------------------------------ 2 files changed, 31 insertions(+), 37 deletions(-) diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 613b41facf..811d802779 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -77,13 +77,6 @@ static bool defaults_saved = false; #define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct)) -/* these are parameter handlers which are not needed in the - * non-source3 code - */ -#define handle_idmap_backend NULL -#define handle_idmap_uid NULL -#define handle_idmap_gid NULL - #ifndef N_ #define N_(x) x #endif @@ -1308,6 +1301,37 @@ bool handle_netbios_aliases(struct loadparm_context *lp_ctx, int snum, const cha return true; } +/* + * idmap related parameters + */ + +bool handle_idmap_backend(struct loadparm_context *lp_ctx, int snum, const char *pszParmValue, char **ptr) +{ + if (lp_ctx->s3_fns) { + return lp_ctx->s3_fns->lp_do_parameter(snum, "idmap config * : backend", pszParmValue); + } + + return lpcfg_string_set(lp_ctx, ptr, pszParmValue); +} + +bool handle_idmap_uid(struct loadparm_context *lp_ctx, int snum, const char *pszParmValue, char **ptr) +{ + if (lp_ctx->s3_fns) { + return lp_ctx->s3_fns->lp_do_parameter(snum, "idmap config * : range", pszParmValue); + } + + return lpcfg_string_set(lp_ctx, ptr, pszParmValue); +} + +bool handle_idmap_gid(struct loadparm_context *lp_ctx, int snum, const char *pszParmValue, char **ptr) +{ + if (lp_ctx->s3_fns) { + return lp_ctx->s3_fns->lp_do_parameter(snum, "idmap config * : range", pszParmValue); + } + + return lpcfg_string_set(lp_ctx, ptr, pszParmValue); +} + /*************************************************************************** Initialise a copymap. ***************************************************************************/ diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 038124c309..d5f7bacf1b 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -260,11 +260,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_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); - static void set_allowed_client_auth(void); static bool lp_set_cmdline_helper(const char *pszParmName, const char *pszParmValue, bool store_values); @@ -2466,31 +2461,6 @@ bool lp_include(struct loadparm_context *unused, int snum, const char *pszParmVa return true; } -/* - * idmap related parameters - */ - -static bool handle_idmap_backend(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr) -{ - lp_do_parameter(snum, "idmap config * : backend", pszParmValue); - - return true; -} - -static bool handle_idmap_uid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr) -{ - lp_do_parameter(snum, "idmap config * : range", pszParmValue); - - return true; -} - -static bool handle_idmap_gid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr) -{ - lp_do_parameter(snum, "idmap config * : range", pszParmValue); - - return true; -} - bool lp_idmap_range(const char *domain_name, uint32_t *low, uint32_t *high) { char *config_option = NULL; -- 2.34.1