From bcee2d7cc92ff2c99e6cac864b4acd15dd66684e Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 19 Mar 2019 07:46:02 +0100 Subject: [PATCH] cli: add optionlist setter for bond options --- clients/common/nm-meta-setting-desc.c | 106 ++++++++++++++++++++------ clients/common/nm-meta-setting-desc.h | 6 ++ 2 files changed, 87 insertions(+), 25 deletions(-) diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c index dece4bb1d..ebd97eef7 100644 --- a/clients/common/nm-meta-setting-desc.c +++ b/clients/common/nm-meta-setting-desc.c @@ -1695,6 +1695,64 @@ _remove_fcn_multilist (ARGS_REMOVE_FCN) return TRUE; } +static gboolean +_set_fcn_optionlist (ARGS_SET_FCN) +{ + gs_free const char **strv = NULL; + const char **iter; + + nm_assert (!error || !*error); + + if (_SET_FCN_DO_RESET_DEFAULT (value)) + return _gobject_property_reset_default (setting, property_info->property_name); + + strv = nm_utils_strsplit_set (value, ",", FALSE); + for (iter = strv; iter && *iter; iter++) { + const char *opt_name; + char *left; + char *right; + + left = (char *) nm_str_skip_leading_spaces (*iter); + + /* FIXME: support backslash escaping for the option list. */ + right = strchr (left, '='); + + if (!right) { + g_set_error (error, 1, 0, _("'%s' is not valid; use