diff options
author | Andreas Schneider <asn@samba.org> | 2020-07-22 17:48:25 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2020-08-19 16:22:40 +0000 |
commit | 93e97d5afd309a8acf8217381f14f3dde4456a06 (patch) | |
tree | f79eaac083c4f5262e154a9822bd382fadcc6cd4 /lib/param/loadparm.c | |
parent | 5a733c3c1ba7bb7ca7770bd0edb648b461f03cd9 (diff) | |
download | samba-93e97d5afd309a8acf8217381f14f3dde4456a06.tar.gz |
lib:param: Add lpcfg_parse_enum_vals()
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'lib/param/loadparm.c')
-rw-r--r-- | lib/param/loadparm.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 0511bdb41e4..5309561b398 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -3678,3 +3678,33 @@ char *lpcfg_substituted_string(TALLOC_CTX *mem_ctx, raw_value, lp_sub->private_data); } + +/** + * @brief Parse a string value of a given parameter to its integer enum value. + * + * @param[in] param_name The parameter name (e.g. 'client smb encrypt') + * + * @param[in] param_value The parameter value (e.g. 'required'). + * + * @return The integer value of the enum the param_value matches or INT32_MIN + * on error. + */ +int32_t lpcfg_parse_enum_vals(const char *param_name, + const char *param_value) +{ + struct parm_struct *parm = NULL; + int32_t ret = INT32_MIN; + bool ok; + + parm = lpcfg_parm_struct(NULL, param_name); + if (parm == NULL) { + return INT32_MIN; + } + + ok = lp_set_enum_parm(parm, param_value, &ret); + if (!ok) { + return INT32_MIN; + } + + return ret; +} |