Update to 1.20.2 release
- Bring back the hard wpa_supplicant dependency (rh #1743585)
This commit is contained in:
parent
f3de64e64d
commit
48c1f98497
1
.gitignore
vendored
1
.gitignore
vendored
@ -360,3 +360,4 @@ network-manager-applet-0.8.1.tar.bz2
|
||||
/NetworkManager-1.19.5.tar.xz
|
||||
/NetworkManager-1.19.90.tar.xz
|
||||
/NetworkManager-1.20.0.tar.xz
|
||||
/NetworkManager-1.20.2.tar.xz
|
||||
|
@ -1,125 +0,0 @@
|
||||
From b82f2d97720bf19e13bdcca5c18ccf5803da19a7 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Haller <thaller@redhat.com>
|
||||
Date: Tue, 20 Aug 2019 15:50:32 +0200
|
||||
Subject: [PATCH] wifi: detect FT support per interface and avoid enabling it
|
||||
|
||||
Previously we only cared whether supplicant is build with support for
|
||||
FT. In that case we would pass FT-PSK to supplicant, like
|
||||
|
||||
Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK'
|
||||
|
||||
Supplicant would then always try FT with preference, regardless whether
|
||||
the interface/driver support it. That results in a failure to associate, if
|
||||
the driver does not support it.
|
||||
|
||||
NetworkManager[1356]: <info> [1566296144.9940] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK'
|
||||
...
|
||||
wpa_supplicant[1348]: wlan0: WPA: AP key_mgmt 0x42 network profile key_mgmt 0x142; available key_mgmt 0x42
|
||||
wpa_supplicant[1348]: wlan0: WPA: using KEY_MGMT FT/PSK
|
||||
...
|
||||
wpa_supplicant[1348]: * akm=0xfac04
|
||||
...
|
||||
kernel: ERROR @wl_set_key_mgmt :
|
||||
kernel: invalid cipher group (1027076)
|
||||
|
||||
Since we pass a list of acceptable "key_mgmt" options to supplicant,
|
||||
FT-PSK should not be used when supplicant knows it's not supported.
|
||||
That is a supplicant bug.
|
||||
|
||||
Regardless, work around it by checking the per-interface capability, and
|
||||
avoid it if support is apparently not present.
|
||||
|
||||
(cherry picked from commit 2f8a4e90f0fd0f900996e3081d49f8799bba4c6f)
|
||||
---
|
||||
src/supplicant/nm-supplicant-interface.c | 35 ++++++++++++++++++------
|
||||
1 file changed, 26 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/supplicant/nm-supplicant-interface.c b/src/supplicant/nm-supplicant-interface.c
|
||||
index 079afca3b5..a54b770c35 100644
|
||||
--- a/src/supplicant/nm-supplicant-interface.c
|
||||
+++ b/src/supplicant/nm-supplicant-interface.c
|
||||
@@ -135,7 +135,8 @@ typedef struct {
|
||||
NMSupplicantFeature p2p_support;
|
||||
NMSupplicantFeature mesh_support;
|
||||
NMSupplicantFeature wfd_support;
|
||||
- NMSupplicantFeature ft_support;
|
||||
+ NMSupplicantFeature ft_support_global;
|
||||
+ NMSupplicantFeature ft_support_per_iface;
|
||||
NMSupplicantFeature sha384_support;
|
||||
guint32 max_scan_ssids;
|
||||
guint32 ready_count;
|
||||
@@ -609,14 +610,25 @@ static void
|
||||
parse_capabilities (NMSupplicantInterface *self, GVariant *capabilities)
|
||||
{
|
||||
NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
|
||||
- gboolean have_active = FALSE, have_p2p = FALSE, have_ssid = FALSE;
|
||||
+ gboolean have_active = FALSE;
|
||||
+ gboolean have_ssid = FALSE;
|
||||
+ gboolean have_p2p = FALSE;
|
||||
+ gboolean have_ft = FALSE;
|
||||
gint32 max_scan_ssids = -1;
|
||||
const char **array;
|
||||
|
||||
g_return_if_fail (capabilities && g_variant_is_of_type (capabilities, G_VARIANT_TYPE_VARDICT));
|
||||
|
||||
- if ( g_variant_lookup (capabilities, "Modes", "^a&s", &array)
|
||||
- && array) {
|
||||
+ if (g_variant_lookup (capabilities, "KeyMgmt", "^a&s", &array)) {
|
||||
+ have_ft = g_strv_contains (array, "wpa-ft-psk");
|
||||
+ g_free (array);
|
||||
+ }
|
||||
+
|
||||
+ priv->ft_support_per_iface = have_ft
|
||||
+ ? NM_SUPPLICANT_FEATURE_YES
|
||||
+ : NM_SUPPLICANT_FEATURE_NO;
|
||||
+
|
||||
+ if (g_variant_lookup (capabilities, "Modes", "^a&s", &array)) {
|
||||
if (g_strv_contains (array, "p2p"))
|
||||
have_p2p = TRUE;
|
||||
g_free (array);
|
||||
@@ -627,8 +639,7 @@ parse_capabilities (NMSupplicantInterface *self, GVariant *capabilities)
|
||||
_notify (self, PROP_P2P_AVAILABLE);
|
||||
}
|
||||
|
||||
- if ( g_variant_lookup (capabilities, "Scan", "^a&s", &array)
|
||||
- && array) {
|
||||
+ if (g_variant_lookup (capabilities, "Scan", "^a&s", &array)) {
|
||||
if (g_strv_contains (array, "active"))
|
||||
have_active = TRUE;
|
||||
if (g_strv_contains (array, "ssid"))
|
||||
@@ -807,7 +818,13 @@ nm_supplicant_interface_get_wfd_support (NMSupplicantInterface *self)
|
||||
NMSupplicantFeature
|
||||
nm_supplicant_interface_get_ft_support (NMSupplicantInterface *self)
|
||||
{
|
||||
- return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->ft_support;
|
||||
+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
|
||||
+
|
||||
+ if (priv->ft_support_global == NM_SUPPLICANT_FEATURE_NO)
|
||||
+ return NM_SUPPLICANT_FEATURE_NO;
|
||||
+ if (priv->ft_support_per_iface != NM_SUPPLICANT_FEATURE_UNKNOWN)
|
||||
+ return priv->ft_support_per_iface;
|
||||
+ return priv->ft_support_global;
|
||||
}
|
||||
|
||||
NMSupplicantFeature
|
||||
@@ -889,7 +906,7 @@ nm_supplicant_interface_set_ft_support (NMSupplicantInterface *self,
|
||||
{
|
||||
NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
|
||||
|
||||
- priv->ft_support = ft_support;
|
||||
+ priv->ft_support_global = ft_support;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2801,7 +2818,7 @@ set_property (GObject *object,
|
||||
break;
|
||||
case PROP_FT_SUPPORT:
|
||||
/* construct-only */
|
||||
- priv->ft_support = g_value_get_int (value);
|
||||
+ priv->ft_support_global = g_value_get_int (value);
|
||||
break;
|
||||
case PROP_SHA384_SUPPORT:
|
||||
/* construct-only */
|
||||
--
|
||||
2.21.0
|
||||
|
@ -7,9 +7,9 @@
|
||||
%global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad)
|
||||
|
||||
%global epoch_version 1
|
||||
%global rpm_version 1.20.0
|
||||
%global real_version 1.20.0
|
||||
%global release_version 3
|
||||
%global rpm_version 1.20.2
|
||||
%global real_version 1.20.2
|
||||
%global release_version 1
|
||||
%global snapshot %{nil}
|
||||
%global git_sha %{nil}
|
||||
|
||||
@ -135,7 +135,6 @@ Source5: 20-connectivity-redhat.conf
|
||||
Source6: 70-nm-connectivity.conf
|
||||
|
||||
#Patch1: 0001-some.patch
|
||||
Patch1: 0001-wifi-detect-FT-support-per-interface-and-avoid-enabl.patch
|
||||
|
||||
Requires(post): systemd
|
||||
Requires(post): /usr/sbin/update-alternatives
|
||||
@ -314,15 +313,7 @@ This package contains NetworkManager support for team devices.
|
||||
Summary: Wifi plugin for NetworkManager
|
||||
Group: System Environment/Base
|
||||
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
|
||||
|
||||
%if %{with iwd} && (0%{?fedora} > 24 || 0%{?rhel} > 7)
|
||||
Requires: (wpa_supplicant >= %{wpa_supplicant_version} or iwd)
|
||||
%else
|
||||
# Just require wpa_supplicant on platforms that don't support boolean
|
||||
# dependencies even though the plugin supports both supplicant and
|
||||
# iwd backend.
|
||||
Requires: wpa_supplicant >= %{wpa_supplicant_version}
|
||||
%endif
|
||||
|
||||
Obsoletes: NetworkManager < %{obsoletes_device_plugins}
|
||||
|
||||
@ -977,6 +968,10 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Sep 05 2019 Lubomir Rintel <lkundrak@v3.sk> - 1:1.20.2-1
|
||||
- Update to 1.20.2 release
|
||||
- Bring back the hard wpa_supplicant dependency (rh #1743585)
|
||||
|
||||
* Fri Aug 23 2019 Lubomir Rintel <lkundrak@v3.sk> - 1:1.20.0-3
|
||||
- install our dispatcher scripts into /usr/lib/NetworkManager
|
||||
- wifi: detect FT support per interface and avoid enabling it
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (NetworkManager-1.20.0.tar.xz) = 825c56a7530d813ba7ea2ec57034def560f4b0fb65a09dc70cd94dc897e2aabde11f18c6c4843da9c520531683e963037ce42270a6ffa5c7c5e9502bb80bdf1b
|
||||
SHA512 (NetworkManager-1.20.2.tar.xz) = 5070af29e2a6db0d58b0b1233f8fd40aca0eca68b879daaa416d7cd7b882741cc9f4746e295bdf99eb63798225bc259321cac994f050a08a00dc1c59170a16fe
|
||||
|
Loading…
Reference in New Issue
Block a user