[PATCH 04/37] lib/param: factor out a common portion of set_variable
abartlet at samba.org
abartlet at samba.org
Fri Jun 20 05:47:26 MDT 2014
From: Garming Sam <garming at catalyst.net.nz>
Change-Id: Id8eeb480a377b4df8c3f51daf0d253f032fd0e83
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
---
lib/param/loadparm.c | 44 ++++++++++++++++++++++++++++++--------------
1 file changed, 30 insertions(+), 14 deletions(-)
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 5a0ef88..836995a 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;
--
1.9.3
More information about the samba-technical
mailing list