summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-04-28 17:21:58 +0200
committerThomas Haller <thaller@redhat.com>2017-04-28 17:21:58 +0200
commit59805d8c59a86b5868ce8e62d90b6c817adebd25 (patch)
tree88d19b088af5919616ede58a1af2eb0e0229aa88
parenta7fdf09848070990710529946fff782fc60c1461 (diff)
parent6ef59b5b776690097d28538db17e0ff8a3df84d5 (diff)
downloadNetworkManager-59805d8c59a86b5868ce8e62d90b6c817adebd25.tar.gz
ifcfg: merge branch 'th/ifcfg-enum'
-rw-r--r--libnm-core/nm-setting-wireless-security.c21
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c167
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c21
-rw-r--r--src/settings/plugins/ifcfg-rh/shvar.c38
-rw-r--r--src/settings/plugins/ifcfg-rh/shvar.h5
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c2
-rw-r--r--src/supplicant/tests/test-supplicant-config.c2
7 files changed, 126 insertions, 130 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 c4221c8893..2df922313b 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
@@ -653,9 +653,10 @@ read_one_ip4_route (shvarFile *ifcfg,
static gboolean
read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError **error)
{
- char *contents = NULL;
+ gs_free char *contents = NULL;
+ gs_strfreev char **lines = NULL;
gsize len = 0;
- char **lines = NULL, **iter;
+ char **iter;
GRegex *regex_to1, *regex_to2, *regex_via, *regex_metric;
GMatchInfo *match_info;
int prefix_int;
@@ -675,8 +676,8 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
g_return_val_if_fail (!error || !*error, FALSE);
/* Read the route file */
- if (!g_file_get_contents (filename, &contents, &len, NULL) || !len) {
- g_free (contents);
+ if ( !g_file_get_contents (filename, &contents, &len, NULL)
+ || !len) {
return TRUE; /* missing/empty = success */
}
@@ -787,8 +788,6 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
success = TRUE;
error:
- g_free (contents);
- g_strfreev (lines);
g_regex_unref (regex_to1);
g_regex_unref (regex_to2);
g_regex_unref (regex_via);
@@ -1533,12 +1532,13 @@ make_ip6_setting (shvarFile *ifcfg,
char *ipv6addr, *ipv6addr_secondaries;
char **list = NULL, **iter;
guint32 i;
+ int i_val;
+ GError *local = NULL;
gint priority;
shvarFile *network_ifcfg;
gboolean never_default = FALSE;
gboolean ip6_privacy = FALSE, ip6_privacy_prefer_public_ip;
NMSettingIP6ConfigPrivacy ip6_privacy_val;
- NMSettingIP6ConfigAddrGenMode addr_gen_mode;
s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new ();
@@ -1730,21 +1730,14 @@ make_ip6_setting (shvarFile *ifcfg,
}
}
- /* IPv6 addressing mode configuration */
- str_value = svGetValueStr_cp (ifcfg, "IPV6_ADDR_GEN_MODE");
- if (str_value) {
- if (nm_utils_enum_from_str (nm_setting_ip6_config_addr_gen_mode_get_type (), str_value,
- (int *) &addr_gen_mode, NULL))
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, addr_gen_mode, NULL);
- else
- PARSE_WARNING ("Invalid IPV6_ADDR_GEN_MODE");
- g_free (str_value);
- } else {
- g_object_set (s_ip6,
- NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE,
- NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64,
- NULL);
+ i_val = NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64;
+ if (!svGetValueEnum (ifcfg, "IPV6_ADDR_GEN_MODE",
+ nm_setting_ip6_config_addr_gen_mode_get_type (),
+ &i_val, &local)) {
+ PARSE_WARNING ("%s", local->message);
+ g_clear_error (&local);
}
+ g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, i_val, NULL);
/* IPv6 tokenized interface identifier */
str_value = svGetValueStr_cp (ifcfg, "IPV6_TOKEN");
@@ -3170,6 +3163,7 @@ fill_8021x (shvarFile *ifcfg,
char *value;
char **list = NULL, **iter;
gint64 timeout;
+ int i_val;
value = svGetValueStr_cp (ifcfg, "IEEE_8021X_EAP_METHODS");
if (!value) {
@@ -3240,23 +3234,12 @@ next:
g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, value, NULL);
g_free (value);
- value = svGetValueStr_cp (ifcfg, "IEEE_8021X_PHASE1_AUTH_FLAGS");
- if (value) {
- NMSetting8021xAuthFlags flags;
- char *token;
-
- if (nm_utils_enum_from_str (nm_setting_802_1x_auth_flags_get_type (), value,
- (int *) &flags, &token)) {
- g_object_set (s_8021x, NM_SETTING_802_1X_PHASE1_AUTH_FLAGS, flags, NULL);
- } else {
- g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
- "Invalid IEEE_8021X_PHASE1_AUTH_FLAGS flag '%s'", token);
- g_free (token);
- g_free (value);
- goto error;
- }
- g_free (value);
- }
+ i_val = NM_SETTING_802_1X_AUTH_FLAGS_NONE;
+ if (!svGetValueEnum (ifcfg, "IEEE_8021X_PHASE1_AUTH_FLAGS",
+ nm_setting_802_1x_auth_flags_get_type (),
+ &i_val, error))
+ goto error;
+ g_object_set (s_8021x, NM_SETTING_802_1X_PHASE1_AUTH_FLAGS, (guint) i_val, NULL);
read_8021x_list_value (ifcfg, "IEEE_8021X_ALTSUBJECT_MATCHES",
s_8021x, NM_SETTING_802_1X_ALTSUBJECT_MATCHES);
@@ -3294,9 +3277,8 @@ make_wpa_setting (shvarFile *ifcfg,
{
NMSettingWirelessSecurity *wsec;
char *value, *psk, *lower;
- const char *cvalue;
gboolean wpa_psk = FALSE, wpa_eap = FALSE, ieee8021x = FALSE;
- guint pmf = NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT;
+ int i_val;
wsec = NM_SETTING_WIRELESS_SECURITY (nm_setting_wireless_security_new ());
@@ -3375,23 +3357,12 @@ make_wpa_setting (shvarFile *ifcfg,
g_free (value);
- cvalue = svGetValue (ifcfg, "PMF", &value);
- if (cvalue) {
- int i_pmf;
-
- if (!nm_utils_enum_from_str (nm_setting_wireless_security_pmf_get_type (),
- cvalue,
- &i_pmf,
- NULL)) {
- g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
- "Invalid PMF value '%s'", cvalue);
- g_free (value);
- goto error;
- }
- pmf = i_pmf;
- g_free (value);
- }
- g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_PMF, pmf, NULL);
+ i_val = NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT;
+ if (!svGetValueEnum (ifcfg, "PMF",
+ nm_setting_wireless_security_pmf_get_type (),
+ &i_val, error))
+ goto error;
+ g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_PMF, i_val, NULL);
value = svGetValueStr_cp (ifcfg, "SECURITYMODE");
if (NM_IN_STRSET (value, NULL, "open"))
@@ -3412,23 +3383,22 @@ make_leap_setting (shvarFile *ifcfg,
const char *file,
GError **error)
{
- NMSettingWirelessSecurity *wsec;
+ gs_unref_object NMSettingWirelessSecurity *wsec = NULL;
shvarFile *keys_ifcfg;
- char *value;
+ gs_free char *value = NULL;
NMSettingSecretFlags flags;
wsec = NM_SETTING_WIRELESS_SECURITY (nm_setting_wireless_security_new ());
value = svGetValueStr_cp (ifcfg, "KEY_MGMT");
if (!value || strcmp (value, "IEEE8021X"))
- goto error; /* Not LEAP */
+ return NULL;
+ nm_clear_g_free (&value);
- g_free (value);
value = svGetValueStr_cp (ifcfg, "SECURITYMODE");
if (!value || strcasecmp (value, "leap"))
- goto error; /* Not LEAP */
-
- g_free (value);
+ return NULL; /* Not LEAP */
+ nm_clear_g_free (&value);
flags = read_secret_flags (ifcfg, "IEEE_8021X_PASSWORD_FLAGS");
g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS, flags, NULL);
@@ -3446,30 +3416,24 @@ make_leap_setting (shvarFile *ifcfg,
}
if (value && strlen (value))
g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, value, NULL);
- g_free (value);
+ nm_clear_g_free (&value);
}
value = svGetValueStr_cp (ifcfg, "IEEE_8021X_IDENTITY");
if (!value) {
g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
"Missing LEAP identity");
- goto error;
+ return NULL;
}
g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, value, NULL);
- g_free (value);
+ nm_clear_g_free (&value);
g_object_set (wsec,
NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "ieee8021x",
NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, "leap",
NULL);
- return (NMSetting *) wsec;
-
-error:
- g_free (value);
- if (wsec)
- g_object_unref (wsec);
- return NULL;
+ return (NMSetting *) g_steal_pointer (&wsec);
}
static NMSetting *
@@ -4035,8 +3999,8 @@ make_wired_setting (shvarFile *ifcfg,
NMSetting8021x **s_8021x,
GError **error)
{
- NMSettingWired *s_wired;
- char *value = NULL;
+ gs_unref_object NMSettingWired *s_wired = NULL;
+ gs_free char *value = NULL;
char *nettype;
s_wired = NM_SETTING_WIRED (nm_setting_wired_new ());
@@ -4050,14 +4014,14 @@ make_wired_setting (shvarFile *ifcfg,
g_object_set (s_wired, NM_SETTING_WIRED_MTU, (guint) mtu, NULL);
else
PARSE_WARNING ("invalid MTU '%s'", value);
- g_free (value);
+ nm_clear_g_free (&value);
}
value = svGetValueStr_cp (ifcfg, "HWADDR");
if (value) {
value = g_strstrip (value);
g_object_set (s_wired, NM_SETTING_WIRED_MAC_ADDRESS, value, NULL);
- g_free (value);
+ nm_clear_g_free (&value);
}
value = svGetValueStr_cp (ifcfg, "SUBCHANNELS");
@@ -4088,19 +4052,19 @@ make_wired_setting (shvarFile *ifcfg,
g_object_set (s_wired, NM_SETTING_WIRED_S390_SUBCHANNELS, chans, NULL);
g_strfreev (chans);
}
- g_free (value);
+ nm_clear_g_free (&value);
}
value = svGetValueStr_cp (ifcfg, "PORTNAME");
if (value) {
nm_setting_wired_add_s390_option (s_wired, "portname", value);
- g_free (value);
+ nm_clear_g_free (&value);
}
value = svGetValueStr_cp (ifcfg, "CTCPROT");
if (value) {
nm_setting_wired_add_s390_option (s_wired, "ctcprot", value);
- g_free (value);
+ nm_clear_g_free (&value);
}
nettype = svGetValueStr_cp (ifcfg, "NETTYPE");
@@ -4130,28 +4094,28 @@ make_wired_setting (shvarFile *ifcfg,
iter++;
}
g_strfreev (options);
- g_free (value);
+ nm_clear_g_free (&value);
}
- value = svGetValueStr_cp (ifcfg, "MACADDR");
- if (value) {
- value = g_strstrip (value);
- g_object_set (s_wired, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, value, NULL);
- g_free (value);
- }
+ g_object_set (s_wired,
+ NM_SETTING_WIRED_CLONED_MAC_ADDRESS,
+ svGetValueStr (ifcfg, "MACADDR", &value),
+ NULL);
+ nm_clear_g_free (&value);
- value = svGetValueStr_cp (ifcfg, "GENERATE_MAC_ADDRESS_MASK");
- g_object_set (s_wired, NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK, value, NULL);
- g_free (value);
+ g_object_set (s_wired,
+ NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK,
+ svGetValueStr (ifcfg, "GENERATE_MAC_ADDRESS_MASK", &value),
+ NULL);
+ nm_clear_g_free (&value);
value = svGetValueStr_cp (ifcfg, "HWADDR_BLACKLIST");
if (value) {
- char **strv;
+ gs_strfreev char **strv = NULL;
strv = transform_hwaddr_blacklist (value);
g_object_set (s_wired, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, strv, NULL);
- g_strfreev (strv);
- g_free (value);
+ nm_clear_g_free (&value);
}
value = svGetValueStr_cp (ifcfg, "KEY_MGMT");
@@ -4159,25 +4123,20 @@ make_wired_setting (shvarFile *ifcfg,
if (!strcmp (value, "IEEE8021X")) {
*s_8021x = fill_8021x (ifcfg, file, value, FALSE, error);
if (!*s_8021x)
- goto error;
+ return NULL;
} else {
g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
"Unknown wired KEY_MGMT type '%s'", value);
- goto error;
+ return NULL;
}
- g_free (value);
+ nm_clear_g_free (&value);
}
parse_ethtool_options (ifcfg, s_wired,
svGetValue (ifcfg, "ETHTOOL_OPTS", &value));
- g_free (value);
-
- return (NMSetting *) s_wired;
+ nm_clear_g_free (&value);
-error:
- g_free (value);
- g_object_unref (s_wired);
- return NULL;
+ return (NMSetting *) g_steal_pointer (&s_wired);
}
static NMConnection *
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
index 3b2b1a5c73..8dd8737ad9 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
@@ -452,11 +452,9 @@ write_8021x_setting (NMConnection *connection,
if (auth_flags == NM_SETTING_802_1X_AUTH_FLAGS_NONE) {
svUnsetValue (ifcfg, "IEEE_8021X_PHASE1_AUTH_FLAGS");
} else {
- gs_free char *flags_str = NULL;
-
- flags_str = _nm_utils_enum_to_str_full (nm_setting_802_1x_auth_flags_get_type (),
- auth_flags, " ");
- svSetValueStr (ifcfg, "IEEE_8021X_PHASE1_AUTH_FLAGS", flags_str);
+ svSetValueEnum (ifcfg, "IEEE_8021X_PHASE1_AUTH_FLAGS",
+ nm_setting_802_1x_auth_flags_get_type(),
+ auth_flags);
}
svSetValueStr (ifcfg, "IEEE_8021X_INNER_AUTH_METHODS",
@@ -711,11 +709,8 @@ write_wireless_security_setting (NMConnection *connection,
if (nm_setting_wireless_security_get_pmf (s_wsec) == NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT)
svUnsetValue (ifcfg, "PMF");
else {
- gs_free char * value = NULL;
-
- value = nm_utils_enum_to_str (nm_setting_wireless_security_pmf_get_type(),
- nm_setting_wireless_security_get_pmf (s_wsec));
- svSetValueStr (ifcfg, "PMF", value);
+ svSetValueEnum (ifcfg, "PMF", nm_setting_wireless_security_pmf_get_type (),
+ nm_setting_wireless_security_get_pmf (s_wsec));
}
return TRUE;
@@ -2653,10 +2648,8 @@ write_ip6_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
/* IPv6 Address generation mode */
addr_gen_mode = nm_setting_ip6_config_get_addr_gen_mode (NM_SETTING_IP6_CONFIG (s_ip6));
if (addr_gen_mode != NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64) {
- tmp = nm_utils_enum_to_str (nm_setting_ip6_config_addr_gen_mode_get_type (),
- addr_gen_mode);
- svSetValueStr (ifcfg, "IPV6_ADDR_GEN_MODE", tmp);
- g_free (tmp);
+ svSetValueEnum (ifcfg, "IPV6_ADDR_GEN_MODE", nm_setting_ip6_config_addr_gen_mode_get_type (),
+ addr_gen_mode);
} else {
svUnsetValue (ifcfg, "IPV6_ADDR_GEN_MODE");
}
diff --git a/src/settings/plugins/ifcfg-rh/shvar.c b/src/settings/plugins/ifcfg-rh/shvar.c
index 25a012cf3c..cddf3daa72 100644
--- a/src/settings/plugins/ifcfg-rh/shvar.c
+++ b/src/settings/plugins/ifcfg-rh/shvar.c
@@ -38,6 +38,7 @@
#include "nm-core-internal.h"
#include "nm-core-utils.h"
+#include "nm-utils/nm-enum-utils.h"
/*****************************************************************************/
@@ -1056,6 +1057,34 @@ svGetValueInt64 (shvarFile *s, const char *key, guint base, gint64 min, gint64 m
return result;
}
+gboolean
+svGetValueEnum (shvarFile *s, const char *key,
+ GType gtype, int *out_value,
+ GError **error)
+{
+ gs_free char *to_free = NULL;
+ const char *svalue;
+ gs_free char *err_token = NULL;
+ int value;
+
+ svalue = _svGetValue (s, key, &to_free);
+ if (!svalue) {
+ /* don't touch out_value. The caller is supposed
+ * to initialize it with the default value. */
+ return TRUE;
+ }
+
+ if (!nm_utils_enum_from_str (gtype, svalue, &value, &err_token)) {
+ g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN,
+ "Invalid token \"%s\" in \"%s\" for %s",
+ err_token, svalue, key);
+ return FALSE;
+ }
+
+ NM_SET_OUT (out_value, value);
+ return TRUE;
+}
+
/*****************************************************************************/
/* Same as svSetValueStr() but it preserves empty @value -- contrary to
@@ -1128,6 +1157,15 @@ svSetValueBoolean (shvarFile *s, const char *key, gboolean value)
}
void
+svSetValueEnum (shvarFile *s, const char *key, GType gtype, int value)
+{
+ gs_free char *v = NULL;
+
+ v = _nm_utils_enum_to_str_full (gtype, value, " ");
+ svSetValueStr (s, key, v);
+}
+
+void
svUnsetValue (shvarFile *s, const char *key)
{
svSetValue (s, key, NULL);
diff --git a/src/settings/plugins/ifcfg-rh/shvar.h b/src/settings/plugins/ifcfg-rh/shvar.h
index 8eaf9b878e..8654d73c75 100644
--- a/src/settings/plugins/ifcfg-rh/shvar.h
+++ b/src/settings/plugins/ifcfg-rh/shvar.h
@@ -64,6 +64,10 @@ gint svGetValueBoolean (shvarFile *s, const char *key, gint def);
gint64 svGetValueInt64 (shvarFile *s, const char *key, guint base, gint64 min, gint64 max, gint64 fallback);
+gboolean svGetValueEnum (shvarFile *s, const char *key,
+ GType gtype, int *out_value,
+ GError **error);
+
/* Set the variable <key> equal to the value <value>.
* If <key> does not exist, and the <current> pointer is set, append
* the key=value pair after that line. Otherwise, prepend the pair
@@ -73,6 +77,7 @@ void svSetValue (shvarFile *s, const char *key, const char *value);
void svSetValueStr (shvarFile *s, const char *key, const char *value);
void svSetValueBoolean (shvarFile *s, const char *key, gboolean value);
void svSetValueInt64 (shvarFile *s, const char *key, gint64 value);
+void svSetValueEnum (shvarFile *s, const char *key, GType gtype, int value);
void svUnsetValue (shvarFile *s, const char *key);
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");