diff options
author | Garming Sam <garming@catalyst.net.nz> | 2014-05-06 16:11:08 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2014-07-07 23:32:35 +0200 |
commit | f1c28fcc23da3f4c8061d2db41fae90b14ca0494 (patch) | |
tree | 09ce82229c0823ee1a81fecd6c5a8f8d74f8f285 /source3/param/loadparm.c | |
parent | 5b5e3ec403dab81784402490e799d92999dc027f (diff) | |
download | samba-f1c28fcc23da3f4c8061d2db41fae90b14ca0494.tar.gz samba-f1c28fcc23da3f4c8061d2db41fae90b14ca0494.tar.xz samba-f1c28fcc23da3f4c8061d2db41fae90b14ca0494.zip |
param: use set_variable_helper in s3 loadparm
Change-Id: I1ed19ee7290f6b52f624e2aa700cf402cfcb255d
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 'source3/param/loadparm.c')
-rw-r--r-- | source3/param/loadparm.c | 121 |
1 files changed, 1 insertions, 120 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 8b24e67e50..4e6953440b 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -2642,126 +2642,7 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue } TALLOC_FREE(frame); - - /* switch on the type of variable it is */ - switch (parm_table[parmnum].type) - { - case P_BOOL: { - bool b; - if (!set_boolean(pszParmValue, &b)) { - DEBUG(0, ("set_variable_helper(%s): value is not " - "boolean!\n", pszParmValue)); - return false; - } - *(bool *)parm_ptr = b; - } - break; - - case P_BOOLREV: { - bool b; - if (!set_boolean(pszParmValue, &b)) { - DEBUG(0, ("set_variable_helper(%s): value is not " - "boolean!\n", pszParmValue)); - return false; - } - *(bool *)parm_ptr = !b; - } - break; - - case P_INTEGER: - *(int *)parm_ptr = lp_int(pszParmValue); - break; - - case P_CHAR: - *(char *)parm_ptr = *pszParmValue; - break; - - case P_OCTAL: - i = sscanf(pszParmValue, "%o", (int *)parm_ptr); - if ( i != 1 ) { - DEBUG ( 0, ("Invalid octal number %s\n", pszParmName )); - return false; - } - break; - - case P_BYTES: - { - uint64_t val; - if (conv_str_size_error(pszParmValue, &val)) { - if (val <= INT_MAX) { - *(int *)parm_ptr = (int)val; - break; - } - } - - DEBUG(0, ("set_variable_helper(%s): value is not " - "a valid size specifier!\n", pszParmValue)); - return false; - } - - case P_CMDLIST: - TALLOC_FREE(*(char ***)parm_ptr); - *(const char * const **)parm_ptr - = (const char * const *)str_list_make_v3(mem_ctx, - pszParmValue, NULL); - break; - - case P_LIST: - { - char **new_list = str_list_make_v3(mem_ctx, - pszParmValue, NULL); - if (new_list == NULL) { - break; - } - - for (i=0; new_list[i]; i++) { - if (*(const char ***)parm_ptr != NULL && - new_list[i][0] == '+' && - new_list[i][1]) - { - if (!str_list_check(*(const char ***)parm_ptr, - &new_list[i][1])) { - *(const char ***)parm_ptr = str_list_add(*(const char ***)parm_ptr, - &new_list[i][1]); - } - } else if (*(const char ***)parm_ptr != NULL && - new_list[i][0] == '-' && - new_list[i][1]) - { - str_list_remove(*(const char ***)parm_ptr, - &new_list[i][1]); - } else { - if (i != 0) { - DEBUG(0, ("Unsupported list syntax for: %s = %s\n", - pszParmName, pszParmValue)); - return false; - } - *(const char * const **)parm_ptr = (const char * const *) new_list; - break; - } - } - break; - } - - case P_STRING: - lpcfg_string_set(mem_ctx, (char **)parm_ptr, pszParmValue); - break; - - case P_USTRING: - lpcfg_string_set_upper(mem_ctx, (char **)parm_ptr, pszParmValue); - break; - - case P_ENUM: - if (!lp_set_enum_parm(&parm_table[parmnum], pszParmValue, (int*)parm_ptr)) { - return false; - } - break; - - case P_SEP: - break; - } - - return true; + return set_variable_helper(mem_ctx, parmnum, parm_ptr, pszParmName, pszParmValue); } /*************************************************************************** |