summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-03-26 14:30:17 +0200
committerThomas Haller <thaller@redhat.com>2017-03-30 13:09:57 +0200
commit486dc1e59607deaa24227af863941c1c06fe0eac (patch)
treee9ee735dc49cd1d9dc016b861170b27aaba932a5
parentd07acc753cf5735aefc2742d93ffa4166772323e (diff)
downloadNetworkManager-486dc1e59607deaa24227af863941c1c06fe0eac.tar.gz
cli: add property-info for NMSettingWimax
-rw-r--r--clients/cli/connections.c2
-rw-r--r--clients/cli/nmcli.c2
-rw-r--r--clients/cli/settings.c101
-rw-r--r--clients/cli/settings.h1
4 files changed, 42 insertions, 64 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index decaf4e406..d56cd5b8ae 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -178,7 +178,7 @@ NmcOutputField nmc_fields_settings_names[] = {
SETTING_FIELD (NM_SETTING_BLUETOOTH_SETTING_NAME, nmc_fields_setting_bluetooth + 1), /* 12 */
SETTING_FIELD (NM_SETTING_OLPC_MESH_SETTING_NAME, nmc_fields_setting_olpc_mesh + 1), /* 13 */
SETTING_FIELD (NM_SETTING_VPN_SETTING_NAME, nmc_fields_setting_vpn + 1), /* 14 */
- SETTING_FIELD (NM_SETTING_WIMAX_SETTING_NAME, nmc_fields_setting_wimax + 1), /* 15 */
+ SETTING_FIELD_TYPE (NM_SETTING_WIMAX_SETTING_NAME, NM_META_SETTING_TYPE_WIMAX), /* 15 */
SETTING_FIELD (NM_SETTING_INFINIBAND_SETTING_NAME, nmc_fields_setting_infiniband + 1), /* 16 */
SETTING_FIELD (NM_SETTING_BOND_SETTING_NAME, nmc_fields_setting_bond + 1), /* 17 */
SETTING_FIELD (NM_SETTING_VLAN_SETTING_NAME, nmc_fields_setting_vlan + 1), /* 18 */
diff --git a/clients/cli/nmcli.c b/clients/cli/nmcli.c
index 5a4be31cd5..5d5e5c5b60 100644
--- a/clients/cli/nmcli.c
+++ b/clients/cli/nmcli.c
@@ -162,7 +162,7 @@ complete_fields (const char *prefix)
complete_field (h, "bluetooth", nmc_fields_setting_bluetooth);
complete_field (h, "802-11-olpc-mesh", nmc_fields_setting_olpc_mesh);
complete_field (h, "vpn", nmc_fields_setting_vpn);
- complete_field (h, "wimax", nmc_fields_setting_wimax);
+ complete_field_new (h, "wimax", NM_META_SETTING_TYPE_WIMAX);
complete_field (h, "infiniband", nmc_fields_setting_infiniband);
complete_field (h, "bond", nmc_fields_setting_bond);
complete_field (h, "vlan", nmc_fields_setting_vlan);
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index 451cf26ac0..285399bc7f 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -275,6 +275,27 @@ _set_fcn_gobject_mtu (const NmcSettingInfo *setting_info,
}
static gboolean
+_set_fcn_gobject_mac (const NmcSettingInfo *setting_info,
+ const NmcPropertyInfo *property_info,
+ NMSetting *setting,
+ const char *value,
+ GError **error)
+{
+ gboolean is_cloned_mac = FALSE;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ if ( (!is_cloned_mac || !NM_CLONED_MAC_IS_SPECIAL (value))
+ && !nm_utils_hwaddr_valid (value, ETH_ALEN)) {
+ g_set_error (error, 1, 0, _("'%s' is not a valid Ethernet MAC"), value);
+ return FALSE;
+ }
+
+ g_object_set (setting, property_info->property_name, value, NULL);
+ return TRUE;
+}
+
+static gboolean
_set_fcn_gobject_secret_flags (const NmcSettingInfo *setting_info,
const NmcPropertyInfo *property_info,
NMSetting *setting,
@@ -675,17 +696,6 @@ NmcOutputField nmc_fields_setting_vpn[] = {
NM_SETTING_VPN_PERSISTENT","\
NM_SETTING_VPN_TIMEOUT
-/* Available fields for NM_SETTING_WIMAX_SETTING_NAME */
-NmcOutputField nmc_fields_setting_wimax[] = {
- SETTING_FIELD ("name"), /* 0 */
- SETTING_FIELD (NM_SETTING_WIMAX_MAC_ADDRESS), /* 1 */
- SETTING_FIELD (NM_SETTING_WIMAX_NETWORK_NAME), /* 2 */
- {NULL, NULL, 0, NULL, FALSE, FALSE, 0}
-};
-#define NMC_FIELDS_SETTING_WIMAX_ALL "name"","\
- NM_SETTING_WIMAX_MAC_ADDRESS","\
- NM_SETTING_WIMAX_NETWORK_NAME
-
/* Available fields for NM_SETTING_INFINIBAND_SETTING_NAME */
NmcOutputField nmc_fields_setting_infiniband[] = {
SETTING_FIELD ("name"), /* 0 */
@@ -4602,12 +4612,6 @@ DEFINE_GETTER (nmc_property_vxlan_get_rsc, NM_SETTING_VXLAN_RSC)
DEFINE_GETTER (nmc_property_vxlan_get_l2_miss, NM_SETTING_VXLAN_L2_MISS)
DEFINE_GETTER (nmc_property_vxlan_get_l3_miss, NM_SETTING_VXLAN_L3_MISS)
-
-/* --- NM_SETTING_WIMAX_SETTING_NAME property functions --- */
-DEFINE_GETTER (nmc_property_wimax_get_network_name, NM_SETTING_WIMAX_NETWORK_NAME)
-DEFINE_GETTER (nmc_property_wimax_get_mac_address, NM_SETTING_WIMAX_MAC_ADDRESS)
-
-
/* --- NM_SETTING_WIRED_SETTING_NAME property functions --- */
DEFINE_GETTER (nmc_property_wired_get_port, NM_SETTING_WIRED_PORT)
DEFINE_GETTER (nmc_property_wired_get_auto_negotiate, NM_SETTING_WIRED_AUTO_NEGOTIATE)
@@ -6211,22 +6215,6 @@ nmc_properties_init (void)
NULL,
NULL);
- /* Add editable properties for NM_SETTING_WIMAX_SETTING_NAME */
- nmc_add_prop_funcs (NM_SETTING_WIMAX_SETTING_NAME""NM_SETTING_WIMAX_NETWORK_NAME,
- nmc_property_wimax_get_network_name,
- nmc_property_set_string,
- NULL,
- NULL,
- NULL,
- NULL);
- nmc_add_prop_funcs (NM_SETTING_WIMAX_SETTING_NAME""NM_SETTING_WIMAX_MAC_ADDRESS,
- nmc_property_wimax_get_mac_address,
- nmc_property_set_mac,
- NULL,
- NULL,
- NULL,
- NULL);
-
/* Add editable properties for NM_SETTING_WIRED_SETTING_NAME */
nmc_add_prop_funcs (NM_SETTING_WIRED_SETTING_NAME""NM_SETTING_WIRED_PORT,
nmc_property_wired_get_port,
@@ -7489,33 +7477,6 @@ setting_vpn_details (const NmcSettingInfo *setting_info, NMSetting *setting, NmC
}
static gboolean
-setting_wimax_details (const NmcSettingInfo *setting_info, NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean secrets)
-{
- NMSettingWimax *s_wimax = NM_SETTING_WIMAX (setting);
- NmcOutputField *tmpl, *arr;
- size_t tmpl_len;
-
- g_return_val_if_fail (NM_IS_SETTING_WIMAX (s_wimax), FALSE);
-
- tmpl = nmc_fields_setting_wimax;
- tmpl_len = sizeof (nmc_fields_setting_wimax);
- nmc->print_fields.indices = parse_output_fields (one_prop ? one_prop : NMC_FIELDS_SETTING_WIMAX_ALL,
- tmpl, FALSE, NULL, NULL);
- arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
- g_ptr_array_add (nmc->output_data, arr);
-
- arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
- set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
- set_val_str (arr, 1, nmc_property_wimax_get_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
- set_val_str (arr, 2, nmc_property_wimax_get_network_name (setting, NMC_PROPERTY_GET_PRETTY));
- g_ptr_array_add (nmc->output_data, arr);
-
- print_data (nmc); /* Print all data */
-
- return TRUE;
-}
-
-static gboolean
setting_infiniband_details (const NmcSettingInfo *setting_info, NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean secrets)
{
NMSettingInfiniband *s_infiniband = NM_SETTING_INFINIBAND (setting);
@@ -7942,6 +7903,11 @@ static const NmcPropertyType _pt_gobject_mtu = {
.set_fcn = _set_fcn_gobject_mtu,
};
+static const NmcPropertyType _pt_gobject_mac = {
+ .get_fcn = _get_fcn_gobject,
+ .set_fcn = _set_fcn_gobject_mac,
+};
+
static const NmcPropertyType _pt_gobject_secret_flags = {
.get_fcn = _get_fcn_gobject_secret_flags,
.set_fcn = _set_fcn_gobject_secret_flags,
@@ -9024,6 +8990,18 @@ static const NmcPropertyInfo properties_setting_proxy[] = {
},
};
+static const NmcPropertyInfo properties_setting_wimax[] = {
+ PROPERTY_INFO_NAME(),
+ {
+ .property_name = N_ (NM_SETTING_WIMAX_MAC_ADDRESS),
+ .property_type = &_pt_gobject_string,
+ },
+ {
+ .property_name = N_ (NM_SETTING_WIMAX_NETWORK_NAME),
+ .property_type = &_pt_gobject_mac,
+ },
+};
+
static const NmcPropertyInfo properties_setting_wireless_security[] = {
PROPERTY_INFO_NAME(),
{
@@ -9284,7 +9262,8 @@ const NmcSettingInfo nmc_setting_infos[_NM_META_SETTING_TYPE_NUM] = {
},
[NM_META_SETTING_TYPE_WIMAX] = {
.general = &nm_meta_setting_infos[NM_META_SETTING_TYPE_WIMAX],
- .get_setting_details = setting_wimax_details,
+ .properties = properties_setting_wimax,
+ .properties_num = G_N_ELEMENTS (properties_setting_wimax),
},
[NM_META_SETTING_TYPE_WIRED] = {
.general = &nm_meta_setting_infos[NM_META_SETTING_TYPE_WIRED],
diff --git a/clients/cli/settings.h b/clients/cli/settings.h
index fcae242ddb..7c032fa4d3 100644
--- a/clients/cli/settings.h
+++ b/clients/cli/settings.h
@@ -163,7 +163,6 @@ extern NmcOutputField nmc_fields_setting_cdma[];
extern NmcOutputField nmc_fields_setting_bluetooth[];
extern NmcOutputField nmc_fields_setting_olpc_mesh[];
extern NmcOutputField nmc_fields_setting_vpn[];
-extern NmcOutputField nmc_fields_setting_wimax[];
extern NmcOutputField nmc_fields_setting_infiniband[];
extern NmcOutputField nmc_fields_setting_bond[];
extern NmcOutputField nmc_fields_setting_vlan[];