diff options
author | Thomas Haller <thaller@redhat.com> | 2017-04-28 13:18:35 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-04-28 17:20:02 +0200 |
commit | 6ef59b5b776690097d28538db17e0ff8a3df84d5 (patch) | |
tree | 88d19b088af5919616ede58a1af2eb0e0229aa88 | |
parent | 2c46b65923fdd6ca2fab90d8e128c070f6385f1b (diff) | |
download | NetworkManager-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.c | 21 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c | 2 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 2 | ||||
-rw-r--r-- | src/supplicant/tests/test-supplicant-config.c | 2 |
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"); |