summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-04-28 13:18:35 +0200
committerThomas Haller <thaller@redhat.com>2017-04-28 17:20:02 +0200
commit6ef59b5b776690097d28538db17e0ff8a3df84d5 (patch)
tree88d19b088af5919616ede58a1af2eb0e0229aa88
parent2c46b65923fdd6ca2fab90d8e128c070f6385f1b (diff)
downloadNetworkManager-6ef59b5b776690097d28538db17e0ff8a3df84d5.tar.gz
libnm: make NMSettingWirelessSecurity's PMF property signed
The PMF property is an GEnum, not GFlags. We only have the GObject property NM_SETTING_WIRELESS_SECURITY_PMF as plain integer type to allow for future extensions. But commonly, enums are signed int, while flags are unsigned. Change the property to be signed for consistency.
-rw-r--r--libnm-core/nm-setting-wireless-security.c21
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c2
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c2
-rw-r--r--src/supplicant/tests/test-supplicant-config.c2
4 files changed, 14 insertions, 13 deletions
diff --git a/libnm-core/nm-setting-wireless-security.c b/libnm-core/nm-setting-wireless-security.c
index dd5e9b5a9f..1d07397878 100644
--- a/libnm-core/nm-setting-wireless-security.c
+++ b/libnm-core/nm-setting-wireless-security.c
@@ -65,7 +65,7 @@ typedef struct {
GSList *proto; /* GSList of strings */
GSList *pairwise; /* GSList of strings */
GSList *group; /* GSList of strings */
- guint pmf;
+ NMSettingWirelessSecurityPmf pmf;
/* LEAP */
char *leap_username;
@@ -1031,7 +1031,8 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
}
}
- if (priv->pmf > NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED) {
+ if ( priv->pmf < 0
+ || priv->pmf > NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED) {
g_set_error_literal (error,
NM_CONNECTION_ERROR,
NM_CONNECTION_ERROR_INVALID_PROPERTY,
@@ -1241,7 +1242,7 @@ set_property (GObject *object, guint prop_id,
priv->group = _nm_utils_strv_to_slist (g_value_get_boxed (value), TRUE);
break;
case PROP_PMF:
- priv->pmf = g_value_get_uint (value);
+ priv->pmf = g_value_get_int (value);
break;
case PROP_LEAP_USERNAME:
g_free (priv->leap_username);
@@ -1316,7 +1317,7 @@ get_property (GObject *object, guint prop_id,
g_value_take_boxed (value, _nm_utils_slist_to_strv (priv->group, TRUE));
break;
case PROP_PMF:
- g_value_set_uint (value, nm_setting_wireless_security_get_pmf (setting));
+ g_value_set_int (value, nm_setting_wireless_security_get_pmf (setting));
break;
case PROP_LEAP_USERNAME:
g_value_set_string (value, priv->leap_username);
@@ -1539,12 +1540,12 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting
*/
g_object_class_install_property
(object_class, PROP_PMF,
- g_param_spec_uint (NM_SETTING_WIRELESS_SECURITY_PMF, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT |
- NM_SETTING_PARAM_FUZZY_IGNORE |
- G_PARAM_STATIC_STRINGS));
+ g_param_spec_int (NM_SETTING_WIRELESS_SECURITY_PMF, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ NM_SETTING_PARAM_FUZZY_IGNORE |
+ G_PARAM_STATIC_STRINGS));
/**
* NMSettingWirelessSecurity:leap-username:
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
index a520a6076e..2df922313b 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
@@ -3362,7 +3362,7 @@ make_wpa_setting (shvarFile *ifcfg,
nm_setting_wireless_security_pmf_get_type (),
&i_val, error))
goto error;
- g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_PMF, (guint) i_val, NULL);
+ g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_PMF, i_val, NULL);
value = svGetValueStr_cp (ifcfg, "SECURITYMODE");
if (NM_IN_STRSET (value, NULL, "open"))
diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
index 97b65eaaf7..b588cf1979 100644
--- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
+++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
@@ -5768,7 +5768,7 @@ test_write_wifi_wpa_psk (gconstpointer test_data)
g_object_set (s_wsec,
NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk",
NM_SETTING_WIRELESS_SECURITY_PSK, args.psk,
- NM_SETTING_WIRELESS_SECURITY_PMF, (guint) NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED,
+ NM_SETTING_WIRELESS_SECURITY_PMF, (int) NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED,
NULL);
if (GPOINTER_TO_INT (args.wep_group_p)) {
diff --git a/src/supplicant/tests/test-supplicant-config.c b/src/supplicant/tests/test-supplicant-config.c
index 68c4f83da3..47e22c4d50 100644
--- a/src/supplicant/tests/test-supplicant-config.c
+++ b/src/supplicant/tests/test-supplicant-config.c
@@ -375,7 +375,7 @@ test_wifi_wpa_psk (const char *detail,
g_object_set (s_wsec,
NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk",
NM_SETTING_WIRELESS_SECURITY_PSK, key_data,
- NM_SETTING_WIRELESS_SECURITY_PMF, NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL,
+ NM_SETTING_WIRELESS_SECURITY_PMF, (int) NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL,
NULL);
nm_setting_wireless_security_add_proto (s_wsec, "wpa");