diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2015-05-06 11:55:17 +0200 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2015-06-19 09:32:58 +0200 |
commit | c3093d9391cf780d64334d4790d1f241d51a5283 (patch) | |
tree | d343ae32484ef89afc1114f017a9077143a54fcc | |
parent | 2a497eeadc7e78e624941b2f6e61a0dcbe7da0d4 (diff) | |
download | NetworkManager-c3093d9391cf780d64334d4790d1f241d51a5283.tar.gz |
cli: add support for connection.autoconnect-slaves property
-rw-r--r-- | clients/cli/settings.c | 64 |
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 */ |