summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2015-04-22 12:10:53 +0200
committerLubomir Rintel <lkundrak@v3.sk>2015-06-15 10:31:26 +0200
commitbef07bc62d6cdb3fc9e2c427c9be0ce2120e0caf (patch)
treefe4cd800d3ed3effece72f452d39532bb34d9c3a
parent561f9b720312c88ce65c3c09b0c921aeaed787ae (diff)
downloadNetworkManager-bef07bc62d6cdb3fc9e2c427c9be0ce2120e0caf.tar.gz
cli: change function for allowed values to return array of strings
(cherry picked from commit 188d6cbaf3a8c874c8a6fb7cdb1d75d41c444aff)
-rw-r--r--clients/cli/connections.c22
-rw-r--r--clients/cli/settings.c43
-rw-r--r--clients/cli/settings.h2
3 files changed, 28 insertions, 39 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index ebeec75f21..11b611a0be 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -7476,7 +7476,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
if (menu_ctx.level == 1) {
const char *prop_name;
char *prop_val_user = NULL;
- const char *avals;
+ const char **avals;
GError *tmp_err = NULL;
prop_name = ask_check_property (cmd_arg,
@@ -7486,9 +7486,12 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
break;
avals = nmc_setting_get_property_allowed_values (menu_ctx.curr_setting, prop_name);
- if (avals)
- g_print (_("Allowed values for '%s' property: %s\n"), prop_name, avals);
-
+ if (avals) {
+ char *avals_str = nmc_util_strv_for_display (avals, FALSE);
+ g_print (_("Allowed values for '%s' property: %s\n"),
+ prop_name, avals_str);
+ g_free (avals_str);
+ }
prop_val_user = nmc_readline (_("Enter '%s' value: "), prop_name);
/* Set property value */
@@ -7540,10 +7543,13 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
/* Ask for value */
if (!cmd_arg_v) {
- const char *avals = nmc_setting_get_property_allowed_values (ss, prop_name);
- if (avals)
- g_print (_("Allowed values for '%s' property: %s\n"), prop_name, avals);
-
+ const char **avals = nmc_setting_get_property_allowed_values (ss, prop_name);
+ if (avals) {
+ char *avals_str = nmc_util_strv_for_display (avals, FALSE);
+ g_print (_("Allowed values for '%s' property: %s\n"),
+ prop_name, avals_str);
+ g_free (avals_str);
+ }
cmd_arg_v = nmc_readline (_("Enter '%s' value: "), prop_name);
}
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index 09916954aa..2dbf3346c6 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -1601,12 +1601,12 @@ register_nmcli_value_transforms (void)
/* Main hash table storing function pointer for manipulating properties */
static GHashTable *nmc_properties = NULL;
-typedef char * (*NmcPropertyGetFunc) (NMSetting *);
-typedef gboolean (*NmcPropertySetFunc) (NMSetting *, const char *, const char *, GError **);
-typedef gboolean (*NmcPropertyRemoveFunc) (NMSetting *, const char *, const char *, guint32, GError **);
-typedef const char * (*NmcPropertyDescribeFunc) (NMSetting *, const char *);
-typedef const char * (*NmcPropertyValuesFunc) (NMSetting *, const char *);
-typedef char * (*NmcPropertyOut2InFunc) (const char *);
+typedef char * (*NmcPropertyGetFunc) (NMSetting *);
+typedef gboolean (*NmcPropertySetFunc) (NMSetting *, const char *, const char *, GError **);
+typedef gboolean (*NmcPropertyRemoveFunc) (NMSetting *, const char *, const char *, guint32, GError **);
+typedef const char * (*NmcPropertyDescribeFunc) (NMSetting *, const char *);
+typedef const char ** (*NmcPropertyValuesFunc) (NMSetting *, const char *);
+typedef char * (*NmcPropertyOut2InFunc) (const char *);
typedef struct {
NmcPropertyGetFunc get_func; /* func getting property values */
@@ -2151,13 +2151,10 @@ check_and_set_string (NMSetting *setting,
}
#define DEFINE_ALLOWED_VAL_FUNC(def_func, valid_values) \
- static const char * \
+ static const char ** \
def_func (NMSetting *setting, const char *prop) \
{ \
- static char *values = NULL; \
- if (G_UNLIKELY (values == NULL)) \
- values = g_strjoinv (", ", (char **) valid_values); \
- return values; \
+ return valid_values; \
}
/* --- generic property setter functions --- */
@@ -3056,17 +3053,10 @@ nmc_property_bond_describe_options (NMSetting *setting, const char *prop)
return desc;
}
-static const char *
+static const char **
nmc_property_bond_allowed_options (NMSetting *setting, const char *prop)
{
- const char **valid_options;
- static char *allowed_vals = NULL;
-
- if (G_UNLIKELY (allowed_vals == NULL)) {
- valid_options = nm_setting_bond_get_valid_options (NM_SETTING_BOND (setting));
- allowed_vals = g_strjoinv (", ", (char **) valid_options);
- }
- return allowed_vals;
+ return nm_setting_bond_get_valid_options (NM_SETTING_BOND (setting));
}
/* --- NM_SETTING_INFINIBAND_SETTING_NAME property setter functions --- */
@@ -4093,17 +4083,10 @@ DEFINE_REMOVER_OPTION (nmc_property_wired_remove_option_s390_options,
NM_SETTING_WIRED,
nm_setting_wired_remove_s390_option)
-static const char *
+static const char **
nmc_property_wired_allowed_s390_options (NMSetting *setting, const char *prop)
{
- const char **valid_options;
- static char *allowed_vals = NULL;
-
- if (G_UNLIKELY (allowed_vals == NULL)) {
- valid_options = nm_setting_wired_get_valid_s390_options (NM_SETTING_WIRED (setting));
- allowed_vals = g_strjoinv (", ", (char **) valid_options);
- }
- return allowed_vals;
+ return nm_setting_wired_get_valid_s390_options (NM_SETTING_WIRED (setting));
}
static const char *
@@ -6496,7 +6479,7 @@ nmc_setting_get_valid_properties (NMSetting *setting)
/*
* Return allowed values for 'prop' as a string.
*/
-const char *
+const char **
nmc_setting_get_property_allowed_values (NMSetting *setting, const char *prop)
{
diff --git a/clients/cli/settings.h b/clients/cli/settings.h
index 3c4c814fd2..179ef751cf 100644
--- a/clients/cli/settings.h
+++ b/clients/cli/settings.h
@@ -37,7 +37,7 @@ void nmc_setting_connection_connect_handlers (NMSettingConnection *setting, NMCo
char **nmc_setting_get_valid_properties (NMSetting *setting);
char *nmc_setting_get_property_desc (NMSetting *setting, const char *prop);
-const char *nmc_setting_get_property_allowed_values (NMSetting *setting, const char *prop);
+const char **nmc_setting_get_property_allowed_values (NMSetting *setting, const char *prop);
char *nmc_setting_get_property (NMSetting *setting,
const char *prop,
GError **error);