summaryrefslogtreecommitdiffstats
path: root/lib/param/loadparm.c
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-02-26 12:28:49 +1300
committerAndrew Bartlett <abartlet@samba.org>2014-07-07 23:32:35 +0200
commite9a2694e2b50e8be195ae7b22efd5ad9dc7b47e7 (patch)
tree099d525c7998724dfb38518e1f265b92a4378116 /lib/param/loadparm.c
parenteda92c7a3d7040be1fb46184f34fdb038eeeb3c7 (diff)
downloadsamba-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.c44
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;