mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-03-06 03:30:42 +01:00
ifcfg-rh: support 802-1x.phase1-auth-alg
This commit is contained in:
parent
bb72409e9f
commit
436eec6083
4 changed files with 43 additions and 0 deletions
|
|
@ -4150,6 +4150,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class)
|
|||
*
|
||||
* Since: 1.8
|
||||
*/
|
||||
/* ---ifcfg-rh---
|
||||
* property: phase1-auth-flags
|
||||
* variable: IEEE_8021X_PHASE1_AUTH_FLAGS(+)
|
||||
* values: space-separated list of authentication flags names
|
||||
* description: Authentication flags for the supplicant
|
||||
* example: IEEE_8021X_PHASE1_AUTH_FLAGS="tls-1-0-disable tls-1-1-disable"
|
||||
* ---end---
|
||||
*/
|
||||
g_object_class_install_property
|
||||
(object_class, PROP_PHASE1_AUTH_FLAGS,
|
||||
g_param_spec_uint (NM_SETTING_802_1X_PHASE1_AUTH_FLAGS, "", "",
|
||||
|
|
|
|||
|
|
@ -3151,6 +3151,24 @@ fill_8021x (shvarFile *ifcfg,
|
|||
g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, value, NULL);
|
||||
g_free (value);
|
||||
|
||||
value = svGetValueString (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);
|
||||
}
|
||||
|
||||
read_8021x_list_value (ifcfg, "IEEE_8021X_ALTSUBJECT_MATCHES",
|
||||
s_8021x, NM_SETTING_802_1X_ALTSUBJECT_MATCHES);
|
||||
read_8021x_list_value (ifcfg, "IEEE_8021X_PHASE2_ALTSUBJECT_MATCHES",
|
||||
|
|
|
|||
|
|
@ -359,6 +359,7 @@ write_8021x_setting (NMConnection *connection,
|
|||
GError **error)
|
||||
{
|
||||
NMSetting8021x *s_8021x;
|
||||
NMSetting8021xAuthFlags auth_flags;
|
||||
const char *value, *match;
|
||||
char *tmp = NULL;
|
||||
gboolean success = FALSE;
|
||||
|
|
@ -450,6 +451,17 @@ write_8021x_setting (NMConnection *connection,
|
|||
g_free (tmp);
|
||||
}
|
||||
|
||||
auth_flags = nm_setting_802_1x_get_phase1_auth_flags (s_8021x);
|
||||
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, " ");
|
||||
svSetValueString (ifcfg, "IEEE_8021X_PHASE1_AUTH_FLAGS", flags_str);
|
||||
}
|
||||
|
||||
svSetValueString (ifcfg, "IEEE_8021X_INNER_AUTH_METHODS",
|
||||
phase2_auth->len ? phase2_auth->str : NULL);
|
||||
|
||||
|
|
|
|||
|
|
@ -5701,6 +5701,11 @@ test_write_wifi_wpa_eap_tls (void)
|
|||
nm_connection_add_setting (connection, NM_SETTING (s_8021x));
|
||||
|
||||
g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, "Bill Smith", NULL);
|
||||
g_object_set (s_8021x,
|
||||
NM_SETTING_802_1X_PHASE1_AUTH_FLAGS,
|
||||
(guint) (NM_SETTING_802_1X_AUTH_FLAGS_TLS_1_0_DISABLE |
|
||||
NM_SETTING_802_1X_AUTH_FLAGS_TLS_1_1_DISABLE),
|
||||
NULL);
|
||||
|
||||
nm_setting_802_1x_add_eap_method (s_8021x, "tls");
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue