summary refs log tree commit diff
path: root/clients/cli/settings.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2018-09-08 17:44:06 +0200
committerMichael Biebl <biebl@debian.org>2018-09-08 17:44:06 +0200
commit8f7a3cbbdd0c0a48277c341dd3a8ec8743ae9735 (patch)
tree4353551fcb59cc822c3cadf2f4888f70601e8fbf /clients/cli/settings.c
parentcaf1db9d6fbc056cc6c76a24574890f6c7895f3d (diff)
New upstream version 1.13.90 upstream/1.13.90
Diffstat (limited to 'clients/cli/settings.c')
-rw-r--r--clients/cli/settings.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index 01142ba2..2d231e1c 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -318,7 +318,7 @@ _set_fcn_precheck_connection_secondaries (const char *value,
 	char **iter;
 	gboolean modified = FALSE;
 
-	strv0 = nm_utils_strsplit_set (value, " \t,");
+	strv0 = nm_utils_strsplit_set (value, " \t,", FALSE);
 	if (!strv0)
 		return TRUE;
 
@@ -662,25 +662,19 @@ nmc_setting_remove_property_option (NMSetting *setting,
 char **
 nmc_setting_get_valid_properties (NMSetting *setting)
 {
-	char **valid_props = NULL;
-	GParamSpec **props, **iter;
-	guint num;
-	int i;
-
-	/* Iterate through properties */
-	i = 0;
-	props = g_object_class_list_properties (G_OBJECT_GET_CLASS (G_OBJECT (setting)), &num);
-	valid_props = g_malloc0 (sizeof (char*) * (num + 1));
-	for (iter = props; iter && *iter; iter++) {
-		const char *key_name = g_param_spec_get_name (*iter);
-
-		/* Add all properties except for "name" that is non-editable */
-		if (g_strcmp0 (key_name, "name") != 0)
-			valid_props[i++] = g_strdup (key_name);
-	}
-	valid_props[i] = NULL;
-	g_free (props);
+	const NMMetaSettingInfoEditor *setting_info;
+	char **valid_props;
+	guint i, num;
+
+	setting_info = nm_meta_setting_info_editor_find_by_setting (setting);
 
+	num = setting_info ? setting_info->properties_num : 0;
+
+	valid_props = g_new (char *, num + 1);
+	for (i = 0; i < num; i++)
+		valid_props[i] = g_strdup (setting_info->properties[i]->property_name);
+
+	valid_props[num] = NULL;
 	return valid_props;
 }
 
@@ -814,6 +808,7 @@ setting_details (const NmcConfig *nmc_config, NMSetting *setting, const char *on
 	if (!nmc_print (nmc_config,
 	                (gpointer[]) { setting, NULL },
 	                NULL,
+	                NULL,
 	                (const NMMetaAbstractInfo *const[]) { (const NMMetaAbstractInfo *) setting_info, NULL },
 	                fields_str,
 	                &error))