summaryrefslogtreecommitdiff
path: root/lib/param/loadparm.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2020-07-22 17:48:25 +0200
committerAndreas Schneider <asn@cryptomilk.org>2020-08-19 16:22:40 +0000
commit93e97d5afd309a8acf8217381f14f3dde4456a06 (patch)
treef79eaac083c4f5262e154a9822bd382fadcc6cd4 /lib/param/loadparm.c
parent5a733c3c1ba7bb7ca7770bd0edb648b461f03cd9 (diff)
downloadsamba-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.c30
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;
+}