NetworkManager/src
Thomas Haller 0290790e51
wifi: fix evaluating the scanning state for wpa-supplicant
wpa_supplicant has a property "scanning" and a "state=scanning".
Previously, NetworkManager considered both parts to indicate whether
supplicant is currently scanning (if either the property or the state
indicated scanning, it took that as indication for scanning).

If NetworkManager thinks that supplicant is scanning, it suppresses
explicit "Scan" requests. That alone is not severe, because the "Scan"
request is only to trigger a scan in supplicant (which supplicant
possibly is already doing in state "scanning").

However, what is severe is that NetworkManager will also block autoconnect
while supplicant is scanning. That is because NetworkManager wants to get
a complete scan result before deciding which network to connect to.

It seems that wpa_supplicant can get into "state=scanning" and stay
there indefinitely. This prevents NetworkManager from autoactivating
a profile.

Fix that, to only honor the "scanning" property.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/597

Fixes: b83f07916a ('supplicant: large rework of wpa_supplicant handling')
(cherry picked from commit 8cadfed2fe)
(cherry picked from commit fbe6240a7d)
(cherry picked from commit 2bec392e56)
2020-12-10 12:27:09 +01:00
..
devices core: recognize "wifi.scan-generate-mac-address-mask" as valid "NetworkManager.conf" option 2020-12-08 15:20:20 +01:00
dhcp dhcp: export the DHCPv6 FQDN option 2020-09-29 12:53:45 +02:00
dns dns: fix leak of NMDnsSystemdResolvedPrivate.dirty_interfaces 2020-12-08 15:20:20 +01:00
dnsmasq license: Add license using SPDX identifiers to meson build files 2020-02-17 13:16:57 +01:00
initrd initrd: fix memory leak 2020-09-04 10:44:09 +02:00
ndisc ndisc/tests: relax assertion in "test-ndisc-fake.c" 2020-09-08 14:36:43 +02:00
platform platform: add the NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE status check 2020-08-06 11:07:24 +02:00
ppp license: Add license using SPDX identifiers to meson build files 2020-02-17 13:16:57 +01:00
settings settings: fix assertion when updating default wired connection 2020-06-22 09:57:35 +02:00
supplicant wifi: fix evaluating the scanning state for wpa-supplicant 2020-12-10 12:27:09 +01:00
systemd systemd: dhcp6: parse the FQDN option 2020-09-29 12:53:42 +02:00
tests meson: merge branch 'inigomartinez/meson-license' 2020-03-28 12:45:19 +01:00
vpn vpn: cleanup loop in nm_vpn_connection_ip6_config_get() 2020-04-28 09:42:32 +02:00
main-utils.c all: use nm_clear_g_free() instead of g_clear_pointer() 2020-03-23 11:05:34 +01:00
main-utils.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
main.c config: print config warnings during NetworkManager --print-config 2019-12-11 11:52:05 +01:00
meson.build meson: merge branch 'inigomartinez/meson-license' 2020-03-28 12:45:19 +01:00
NetworkManagerUtils.c utils: alow matching ipv6 new method 'disable' 2019-11-18 11:07:18 +01:00
NetworkManagerUtils.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-act-request.c shared: move nm-dbus-auth-subject to shared/nm-libnm-core-intern 2019-12-24 10:13:51 +01:00
nm-act-request.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-active-connection.c core: fix check on master active-connection failure 2020-07-21 09:10:33 +02:00
nm-active-connection.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-audit-manager.c shared: nm-auth-subject: add unix-session type 2019-12-24 10:13:51 +01:00
nm-audit-manager.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-auth-manager.c all: drop explicit casts from _GET_PRIVATE() macro calls 2020-02-14 11:04:46 +01:00
nm-auth-manager.h shared: move nm-dbus-auth-subject to shared/nm-libnm-core-intern 2019-12-24 10:13:51 +01:00
nm-auth-utils.c auth: track NMAuthChain data in array instead of CList 2020-04-29 12:29:57 +02:00
nm-auth-utils.h auth: natively support GCancellable in NMAuthChain 2020-04-29 12:29:56 +02:00
nm-checkpoint-manager.c all: use nm_dbus_path_not_empty() 2019-11-07 11:34:36 +01:00
nm-checkpoint-manager.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-checkpoint.c all: use nm_clear_pointer() instead of g_clear_pointer() 2020-03-23 11:22:38 +01:00
nm-checkpoint.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-config-data.c all: drop explicit casts from _GET_PRIVATE() macro calls 2020-02-14 11:04:46 +01:00
nm-config-data.h config: add nm_config_data_get_warnings() to get additional warnings about wrong configuration 2019-12-11 11:52:05 +01:00
nm-config.c core: recognize "wifi.scan-generate-mac-address-mask" as valid "NetworkManager.conf" option 2020-12-08 15:20:20 +01:00
nm-config.h core: recognize "wifi.scan-generate-mac-address-mask" as valid "NetworkManager.conf" option 2020-12-08 15:20:20 +01:00
nm-connectivity.c shared: drop _STATIC variant of macros that define functions 2020-02-13 17:17:07 +01:00
nm-connectivity.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-core-utils.c utils: use nm_utils_strsplit_set_full() in nm_utils_proc_cmdline_split() 2020-03-24 20:59:36 +01:00
nm-core-utils.h nm-core-utils: add nm_utils_proc_cmdline 2020-03-24 16:56:06 +01:00
nm-dbus-manager.c all: use nm_clear_pointer() instead of g_clear_pointer() 2020-03-23 11:22:38 +01:00
nm-dbus-manager.h shared: move nm-dbus-auth-subject to shared/nm-libnm-core-intern 2019-12-24 10:13:51 +01:00
nm-dbus-object.c all: use nm_clear_g_free() instead of g_clear_pointer() 2020-03-23 11:05:34 +01:00
nm-dbus-object.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dbus-utils.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dbus-utils.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dcb.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dcb.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-dhcp-config.c core: add common base class NMDhcpConfig for NMDhcp[46]Config and merge them 2020-02-21 15:59:44 +01:00
nm-dhcp-config.h core: add common base class NMDhcpConfig for NMDhcp[46]Config and merge them 2020-02-21 15:59:44 +01:00
nm-dispatcher.c device: merge nm_device_get_dhcp[46]_config() to nm_device_get_dhcp_config() 2020-02-21 15:59:44 +01:00
nm-dispatcher.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-firewall-manager.c all: add nm_utils_error_is_cancelled() and nm_utils_error_is_cancelled_or_disposing() 2020-02-10 19:11:50 +01:00
nm-firewall-manager.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-hostname-manager.c core: avoid deprecated matchfilecon SELinux API instead of selabel 2020-08-28 11:39:06 +02:00
nm-hostname-manager.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-iface-helper.c all: use nm_clear_pointer() instead of g_clear_pointer() 2020-03-23 11:22:38 +01:00
nm-ip4-config.c wireguard: don't let explicit gateway override WireGuard's peer route 2020-04-22 15:05:39 +02:00
nm-ip4-config.h wireguard: don't let explicit gateway override WireGuard's peer route 2020-04-22 15:05:39 +02:00
nm-ip6-config.c wireguard: don't let explicit gateway override WireGuard's peer route 2020-04-22 15:05:39 +02:00
nm-ip6-config.h core: add NMIPConfigFlags for NMIPConfig flags 2020-04-22 15:05:39 +02:00
nm-keep-alive.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-keep-alive.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-logging.c all: use nm_clear_g_free() instead of g_clear_pointer() 2020-03-23 11:05:34 +01:00
nm-logging.h core: move _LOG*() macros to "shared/nm-glib-aux/nm-logging-fwd.h" 2019-11-22 15:32:52 +01:00
nm-manager.c core: fix modifying connection during recheck_assume_connection() 2020-12-08 15:20:19 +01:00
nm-manager.h device: implement "auth-request" as async operation nm_manager_device_auth_request() 2020-04-29 12:29:57 +02:00
nm-netns.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-netns.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-pacrunner-manager.c all: drop explicit casts from _GET_PRIVATE() macro calls 2020-02-14 11:04:46 +01:00
nm-pacrunner-manager.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-policy.c policy: get the DHCPv6 hostname from the FQDN option 2020-09-29 12:53:45 +02:00
nm-policy.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-proxy-config.c all: use nm_clear_g_free() instead of g_clear_pointer() 2020-03-23 11:05:34 +01:00
nm-proxy-config.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-rfkill-manager.c all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-rfkill-manager.h all: manually drop code comments with file description 2019-10-01 07:50:52 +02:00
nm-session-monitor.c all: use nm_clear_pointer() instead of g_clear_pointer() 2020-03-23 11:22:38 +01:00
nm-session-monitor.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-sleep-monitor.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-sleep-monitor.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-test-utils-core.h libnm/keyfile: build keyfile code as separate GPL licensed internal library 2020-01-07 13:17:47 +01:00
nm-types.h device: implement "auth-request" as async operation nm_manager_device_auth_request() 2020-04-29 12:29:57 +02:00
org.freedesktop.NetworkManager.conf wifi-p2p: rename Wi-Fi P2P 2019-02-01 17:02:57 +01:00