summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2015-05-06 11:55:17 +0200
committerJiří Klimeš <jklimes@redhat.com>2015-06-19 09:32:58 +0200
commitc3093d9391cf780d64334d4790d1f241d51a5283 (patch)
treed343ae32484ef89afc1114f017a9077143a54fcc
parent2a497eeadc7e78e624941b2f6e61a0dcbe7da0d4 (diff)
downloadNetworkManager-c3093d9391cf780d64334d4790d1f241d51a5283.tar.gz
cli: add support for connection.autoconnect-slaves property
-rw-r--r--clients/cli/settings.c64
1 files changed, 58 insertions, 6 deletions
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index e0b4675af6..4492c6481b 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -57,9 +57,10 @@ NmcOutputField nmc_fields_setting_connection[] = {
SETTING_FIELD (NM_SETTING_CONNECTION_ZONE, 10), /* 10 */
SETTING_FIELD (NM_SETTING_CONNECTION_MASTER, 20), /* 11 */
SETTING_FIELD (NM_SETTING_CONNECTION_SLAVE_TYPE, 20), /* 12 */
- SETTING_FIELD (NM_SETTING_CONNECTION_SECONDARIES, 40), /* 13 */
- SETTING_FIELD (NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT, 30), /* 14 */
- SETTING_FIELD (NM_SETTING_CONNECTION_METERED, 10), /* 15 */
+ SETTING_FIELD (NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES, 13), /* 13 */
+ SETTING_FIELD (NM_SETTING_CONNECTION_SECONDARIES, 40), /* 14 */
+ SETTING_FIELD (NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT, 30), /* 15 */
+ SETTING_FIELD (NM_SETTING_CONNECTION_METERED, 10), /* 16 */
{NULL, NULL, 0, NULL, FALSE, FALSE, 0}
};
#define NMC_FIELDS_SETTING_CONNECTION_ALL "name"","\
@@ -75,6 +76,7 @@ NmcOutputField nmc_fields_setting_connection[] = {
NM_SETTING_CONNECTION_ZONE","\
NM_SETTING_CONNECTION_MASTER","\
NM_SETTING_CONNECTION_SLAVE_TYPE","\
+ NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES","\
NM_SETTING_CONNECTION_SECONDARIES","\
NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT","\
NM_SETTING_CONNECTION_METERED
@@ -777,6 +779,24 @@ ip6_privacy_to_string (NMSettingIP6ConfigPrivacy ip6_privacy, NmcPropertyGetType
}
static char *
+autoconnect_slaves_to_string (NMSettingConnectionAutoconnectSlaves autoconnect_slaves,
+ NmcPropertyGetType get_type)
+{
+ if (get_type == NMC_PROPERTY_GET_PARSABLE)
+ return g_strdup_printf ("%d", autoconnect_slaves);
+
+ switch (autoconnect_slaves) {
+ case NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_NO:
+ return g_strdup_printf (_("%d (no)"), autoconnect_slaves);
+ case NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_YES:
+ return g_strdup_printf (_("%d (yes)"), autoconnect_slaves);
+ case NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_DEFAULT:
+ default:
+ return g_strdup_printf (_("%d (default)"), autoconnect_slaves);
+ }
+}
+
+static char *
secret_flags_to_string (guint32 flags, NmcPropertyGetType get_type)
{
GString *flag_str;
@@ -1094,6 +1114,14 @@ nmc_property_connection_get_permissions (NMSetting *setting, NmcPropertyGetType
DEFINE_GETTER (nmc_property_connection_get_zone, NM_SETTING_CONNECTION_ZONE)
DEFINE_GETTER (nmc_property_connection_get_master, NM_SETTING_CONNECTION_MASTER)
DEFINE_GETTER (nmc_property_connection_get_slave_type, NM_SETTING_CONNECTION_SLAVE_TYPE)
+
+static char *
+nmc_property_connection_get_autoconnect_slaves (NMSetting *setting, NmcPropertyGetType get_type)
+{
+ NMSettingConnection *s_con = NM_SETTING_CONNECTION (setting);
+ return autoconnect_slaves_to_string (nm_setting_connection_get_autoconnect_slaves (s_con), get_type);
+}
+
DEFINE_GETTER (nmc_property_connection_get_secondaries, NM_SETTING_CONNECTION_SECONDARIES)
DEFINE_GETTER (nmc_property_connection_get_gateway_ping_timeout, NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT)
@@ -2296,6 +2324,22 @@ nmc_property_set_bool (NMSetting *setting, const char *prop, const char *val, GE
}
static gboolean
+nmc_property_set_trilean (NMSetting *setting, const char *prop, const char *val, GError **error)
+{
+ long int val_int;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ if (!nmc_string_to_int (val, TRUE, -1, 1, &val_int)) {
+ g_set_error (error, 1, 0, _("'%s' is not a valid value; use -1, 0 or 1"), val);
+ return FALSE;
+ }
+
+ g_object_set (setting, prop, val_int, NULL);
+ return TRUE;
+}
+
+static gboolean
nmc_property_set_ssid (NMSetting *setting, const char *prop, const char *val, GError **error)
{
GBytes *ssid;
@@ -5416,6 +5460,13 @@ nmc_properties_init (void)
NULL,
nmc_property_con_allowed_slave_type,
NULL);
+ nmc_add_prop_funcs (GLUE (CONNECTION, AUTOCONNECT_SLAVES),
+ nmc_property_connection_get_autoconnect_slaves,
+ nmc_property_set_trilean,
+ NULL,
+ NULL,
+ NULL,
+ NULL);
nmc_add_prop_funcs (GLUE (CONNECTION, SECONDARIES),
nmc_property_connection_get_secondaries,
nmc_property_connection_set_secondaries,
@@ -6815,9 +6866,10 @@ setting_connection_details (NMSetting *setting, NmCli *nmc, const char *one_pro
set_val_str (arr, 10, nmc_property_connection_get_zone (setting, NMC_PROPERTY_GET_PRETTY));
set_val_str (arr, 11, nmc_property_connection_get_master (setting, NMC_PROPERTY_GET_PRETTY));
set_val_str (arr, 12, nmc_property_connection_get_slave_type (setting, NMC_PROPERTY_GET_PRETTY));
- set_val_str (arr, 13, nmc_property_connection_get_secondaries (setting, NMC_PROPERTY_GET_PRETTY));
- set_val_str (arr, 14, nmc_property_connection_get_gateway_ping_timeout (setting, NMC_PROPERTY_GET_PRETTY));
- set_val_str (arr, 15, nmc_property_connection_get_metered (setting, NMC_PROPERTY_GET_PRETTY));
+ set_val_str (arr, 13, nmc_property_connection_get_autoconnect_slaves (setting, NMC_PROPERTY_GET_PRETTY));
+ set_val_str (arr, 14, nmc_property_connection_get_secondaries (setting, NMC_PROPERTY_GET_PRETTY));
+ set_val_str (arr, 15, nmc_property_connection_get_gateway_ping_timeout (setting, NMC_PROPERTY_GET_PRETTY));
+ set_val_str (arr, 16, nmc_property_connection_get_metered (setting, NMC_PROPERTY_GET_PRETTY));
g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */