diff options
author | Garming Sam <garming@catalyst.net.nz> | 2014-02-26 12:28:49 +1300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2014-07-07 23:32:35 +0200 |
commit | e9a2694e2b50e8be195ae7b22efd5ad9dc7b47e7 (patch) | |
tree | 099d525c7998724dfb38518e1f265b92a4378116 /lib/param/loadparm.c | |
parent | eda92c7a3d7040be1fb46184f34fdb038eeeb3c7 (diff) | |
download | samba-e9a2694e2b50e8be195ae7b22efd5ad9dc7b47e7.tar.gz samba-e9a2694e2b50e8be195ae7b22efd5ad9dc7b47e7.tar.xz samba-e9a2694e2b50e8be195ae7b22efd5ad9dc7b47e7.zip |
lib/param: factor out a common portion of set_variable
Change-Id: Id8eeb480a377b4df8c3f51daf0d253f032fd0e83
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 'lib/param/loadparm.c')
-rw-r--r-- | lib/param/loadparm.c | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index c8f34e709d..42dbacebd2 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -1399,23 +1399,12 @@ static bool lp_do_parameter_parametric(struct loadparm_context *lp_ctx, return true; } -static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr, - const char *pszParmName, const char *pszParmValue, - struct loadparm_context *lp_ctx, bool on_globals) +bool set_variable_helper(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr, + const char *pszParmName, const char *pszParmValue) { int i; - /* if it is a special case then go ahead */ - if (parm_table[parmnum].special) { - bool ret; - ret = parm_table[parmnum].special(lp_ctx, -1, pszParmValue, - (char **)parm_ptr); - if (!ret) { - return false; - } - goto mark_non_default; - } - /* now switch on the type of variable it is */ + /* switch on the type of variable it is */ switch (parm_table[parmnum].type) { case P_BOOL: { @@ -1527,6 +1516,33 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr, break; } + return true; + +} + +static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr, + const char *pszParmName, const char *pszParmValue, + struct loadparm_context *lp_ctx, bool on_globals) +{ + int i; + bool ok; + + /* if it is a special case then go ahead */ + if (parm_table[parmnum].special) { + ok = parm_table[parmnum].special(lp_ctx, -1, pszParmValue, + (char **)parm_ptr); + if (!ok) { + return false; + } + goto mark_non_default; + } + + ok = set_variable_helper(mem_ctx, parmnum, parm_ptr, pszParmName, pszParmValue); + + if (!ok) { + return false; + } + mark_non_default: if (on_globals && (lp_ctx->flags[parmnum] & FLAG_DEFAULT)) { lp_ctx->flags[parmnum] &= ~FLAG_DEFAULT; |