iwd/src
James Prestwood 7080a4453e station: add handling for new NETCONFIG state
There was an unhandled corner case if netconfig was running and
multiple roam conditions happened in sequence, all before netconfig
had completed. A single roam before netconfig was already handled
(23f0f5717c) but this did not take into account any additional roam
conditions.

If IWD is in this state, having started netconfig, then roamed, and
again restarted netconfig it is still in a roaming state which will
prevent any further roams. IWD will remain "stuck" on the current
BSS until netconfig completes or gets disconnected.

In addition the general state logic is wrong here. If IWD roams
prior to netconfig it should stay in a connecting state (from the
perspective of DBus).

To fix this a new internal station state was added (no changes to
the DBus API) to distinguish between a purely WiFi connecting state
(STATION_STATE_CONNECTING/AUTO) and netconfig
(STATION_STATE_NETCONFIG). This allows IWD roam as needed if
netconfig is still running. Also, some special handling was added so
the station state property remains in a "connected" state until
netconfig actually completes, regardless of roams.

For some background this scenario happens if the DHCP server goes
down for an extended period, e.g. if its being upgraded/serviced.
2024-01-08 22:04:53 -06:00
..
80-iwd.link build: Move 50-iwd.link up to 80-iwd.link for less confusion 2019-10-25 01:08:56 +02:00
adhoc.c adhoc: Fix compilation on old systems 2023-11-27 11:26:52 +01:00
agent.c netconfig: Add NetworkConfigurationAgent DBus API 2022-09-13 08:57:55 -05:00
agent.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
anqp.c frame-xchg: add type to frame_xchg_prefix 2022-09-16 11:02:07 -05:00
anqp.h anqp: refactor to use frame-xchg 2020-07-09 09:58:21 -05:00
anqputil.c anqputil: Avoid potential overflow 2022-01-14 12:08:01 -06:00
anqputil.h anqp: move ANQP parsers into anqputil 2019-07-15 14:53:44 -05:00
ap.c netdev: Move CMD_DEL_STATION builder to nl80211util 2023-11-14 09:49:39 -06:00
ap.h ap: Forward DHCP events to AP event handler 2021-06-04 11:55:06 -05:00
auth-proto.h auth-proto: add auth_proto_rx_oci 2021-09-28 10:51:33 -05:00
backtrace.c treewide: Various style fixups 2022-01-11 11:07:05 -06:00
backtrace.h treewide: Various style fixups 2022-01-11 11:07:05 -06:00
band.c band: Silence warning 2023-10-06 23:21:48 -05:00
band.h band: add tx_power to frequency info attributes 2023-01-03 09:16:32 -06:00
blacklist.c module: Move declarations into separate header file 2019-11-07 23:40:13 +01:00
blacklist.h blacklist: Convert to use IWD_MODULE 2019-05-22 09:58:04 -05:00
common.c common: add FT-8021X-SHA384 to AKM_IS_8021X 2023-04-16 13:01:01 -05:00
common.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
crypto.c crypto: remove label from prf_plus, instead use va_args 2023-10-17 10:13:42 -05:00
crypto.h crypto: remove label from prf_plus, instead use va_args 2023-10-17 10:13:42 -05:00
dbus.c netdev: Move iftype_to_string utility 2021-04-20 09:37:48 -05:00
dbus.h dbus: add net.connman.iwd.SharedCodeAgent DBus interface 2023-11-02 20:31:05 -05:00
device.c wiphy: add two regulatory domain state events 2022-08-04 10:30:46 -05:00
diagnostic.c diagnostic: Fix crash with Open networks 2021-04-28 11:19:38 -05:00
diagnostic.h diagnostic: add diagnostic_akm_suite_to_security 2021-03-29 13:17:36 -05:00
dpp-util.c dpp: fix data corruption around prf_plus() call 2023-12-18 22:14:45 -06:00
dpp-util.h dpp-util: add support for 3rd party JSON fields 2023-11-17 09:48:22 -06:00
dpp.c station: add additional internal state, STATION_STATE_NETCONFIG 2024-01-08 22:04:41 -06:00
eap-aka.c eap-aka: round to nearest word on message buffers 2021-07-30 10:38:26 -05:00
eap-gtc.c treewide: Remove pointless return statement 2022-01-11 11:07:33 -06:00
eap-md5.c eap-md5: Do not check deprecated MD5-Secret 2021-06-01 10:44:57 -05:00
eap-mschapv2.c treewide: Prefer flexible arrays to zero-length arrays 2023-04-13 22:20:57 -05:00
eap-mschapv2.h cleanup: Remove extra empty lines 2020-03-17 15:35:22 -05:00
eap-peap.c eap-peap: Fix failures with session resumption 2023-01-03 09:58:29 -06:00
eap-private.h build: treewide: Set retain attribute 2021-11-11 14:27:33 -06:00
eap-pwd.c eap-pwd: fix usage of compressed points (after ELL is fixed) 2023-10-11 10:19:34 -05:00
eap-sim.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
eap-tls-common.c eap-tls: Add FastReauthentication setting 2023-01-30 10:19:58 -06:00
eap-tls-common.h eap-peap: Fix failures with session resumption 2023-01-03 09:58:29 -06:00
eap-tls.c eap-peap: Fix failures with session resumption 2023-01-03 09:58:29 -06:00
eap-ttls.c eap-peap: Fix failures with session resumption 2023-01-03 09:58:29 -06:00
eap-wsc.c treewide: Various style fixups 2022-01-11 11:07:05 -06:00
eap-wsc.h eap-wsc: Registrar mode message processing 2020-08-17 09:40:25 -05:00
eap.c eap: Silence warning 2023-10-06 23:24:25 -05:00
eap.h eap-tls: Add session caching 2022-11-17 10:04:56 -06:00
eapol.c handshake: use authenticator_fte instead of 'fte' 2023-12-13 10:08:06 -06:00
eapol.h eapol: set secure on message 2/4 properly 2023-01-11 15:48:17 -06:00
eapolutil.c eapol: More strictly validate key_descriptor_version 2022-10-24 11:05:24 -05:00
eapolutil.h eapol: More strictly validate key_descriptor_version 2022-10-24 11:05:24 -05:00
erp.c dpp: fix data corruption around prf_plus() call 2023-12-18 22:14:45 -06:00
erp.h erp: Fix buffer overflow for 32 byte SSIDs 2023-11-27 11:27:26 +01:00
fils.c handshake: use authenticator_fte instead of 'fte' 2023-12-13 10:08:06 -06:00
fils.h fils: support OCI in reassociation 2021-09-28 16:46:48 -05:00
frame-xchg.c frame-xchg: add type to frame_xchg_prefix 2022-09-16 11:02:07 -05:00
frame-xchg.h frame-xchg: create global group enum 2022-09-16 11:04:31 -05:00
ft.c ft: remove ft_associate and helpers 2023-12-13 10:12:41 -06:00
ft.h ft: remove ft_associate and helpers 2023-12-13 10:12:41 -06:00
genbuiltin make: plugin system for build 2017-11-28 13:20:33 -06:00
handshake.c handshake: remove handshake_state_set_fte 2023-12-13 10:08:53 -06:00
handshake.h handshake: remove handshake_state_set_fte 2023-12-13 10:08:53 -06:00
hotspot.c hotspot: implement hotspot profile encryption 2022-02-15 17:22:21 -06:00
ie.c ie: Move AKM suite converter from netdev 2023-11-27 11:27:26 +01:00
ie.h ie: Move AKM suite converter from netdev 2023-11-27 11:27:26 +01:00
ip-pool.c treewide: Fix compilation due to missing rtnetlink.h 2023-11-09 09:27:00 -06:00
ip-pool.h ip-pool: Add subnet address selection logic 2021-06-01 10:03:04 -05:00
iwd-dbus.conf dbus: add SharedCodeAgent interface to iwd-dbus.conf 2023-11-17 14:13:31 -06:00
iwd.ap.rst doc: document DisableHT AP setting 2023-02-27 10:26:17 -06:00
iwd.config.rst tree-wide: correct the spelling Ghz -> GHz 2023-11-07 21:11:50 -06:00
iwd.debug.rst docs: Show new usage of IWD_DHCP_DEBUG 2022-05-19 09:47:36 -05:00
iwd.h main: add a --developer,-E option 2021-05-07 08:45:20 -05:00
iwd.network.rst doc: document [Security].PasswordIdentifier 2023-12-15 10:21:01 -06:00
iwd.rst doc: Add manual page for debugging information 2019-11-05 22:14:09 +01:00
iwd.service.in build: Add documention of manual pages to systemd service file 2022-11-18 10:50:31 +01:00
json.c json: Set defines before including shared/jsmn.h 2022-11-02 11:25:35 +01:00
json.h json: fix comment typo, "json_object_is_valid" 2023-11-17 09:49:12 -06:00
knownnetworks.c knownnetworks: Add UPDATED event 2023-12-19 12:41:36 -06:00
knownnetworks.h knownnetworks: Add UPDATED event 2023-12-19 12:41:36 -06:00
main.c treewide: Fix compilation due to missing rtnetlink.h 2023-11-09 09:27:00 -06:00
manager.c manager: handle -ENODEV special in interface callback 2023-01-17 13:11:53 -06:00
missing.h build: Add reallocarray to missing.h 2021-09-20 10:32:51 -05:00
module.c module: Declare functions as foo(void) instead of just foo() 2019-11-24 19:44:06 +01:00
module.h build: treewide: Set retain attribute 2021-11-11 14:27:33 -06:00
mpdu.c treewide: Various style fixups 2022-01-11 11:07:05 -06:00
mpdu.h mpdu: add unknown password identifier status 2023-12-06 10:58:38 -06:00
mschaputil.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
mschaputil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
net.connman.iwd.service net.connman.iwd.service: Change SystemdService name to iwd.service 2018-08-09 10:45:16 -05:00
netconfig-commit.c netconfig: Avoid generating events after netconfig_reset 2022-10-26 14:16:22 -05:00
netconfig.c netconfig: Don't load settings in netconfig_new 2022-12-27 10:46:30 -06:00
netconfig.h netconfig: Avoid generating events after netconfig_reset 2022-10-26 14:16:22 -05:00
netdev.c netdev: add netdev_ft_reassociate 2023-12-13 10:10:46 -06:00
netdev.h netdev: station: remove NETDEV_EVENT_FT_ROAMED 2023-12-13 10:12:53 -06:00
network.c knownnetworks: Add UPDATED event 2023-12-19 12:41:36 -06:00
network.h network: make network const in network_bss_list_get_entries 2022-08-11 09:10:40 -05:00
nl80211cmd.c nl80211cmd: make CH_SWITCH_STARTED_NOTIFY name unique 2021-10-19 13:28:07 -05:00
nl80211cmd.h nl80211cmd: Introduce new utility 2019-07-15 14:06:26 -05:00
nl80211util.c nl80211util: Move nl80211_append_rsn_attributes 2023-11-27 11:27:26 +01:00
nl80211util.h nl80211util: Move nl80211_append_rsn_attributes 2023-11-27 11:27:26 +01:00
offchannel.c offchannel: handle out of order ACKs/events 2023-10-26 09:30:03 -05:00
offchannel.h offchannel: add priority to start call 2022-09-21 21:17:04 -05:00
ofono.c ofono: convert to module 2020-09-16 14:31:07 -05:00
owe.c owe: allow OWE to force group 19 2022-08-08 13:37:08 -05:00
owe.h owe: netdev: refactor to remove OWE as an auth-proto 2021-09-03 14:34:30 -05:00
p2p.c netdev: Remove vendor_ies from netdev_connect signature 2023-11-30 17:10:01 -06:00
p2p.h Add minimal p2p.c and p2p.h 2020-04-10 06:31:19 -05:00
p2putil.c p2putil: Ensure non-negative index in p2p_get_random_string 2021-06-04 11:53:31 -05:00
p2putil.h treewide: Various style fixups 2022-01-11 11:07:05 -06:00
pkcs8.conf build: Provide modules-load.d for loading pkcs8_key_parser module 2019-01-23 18:22:11 +01:00
resolve.c resolve: Add "none" method 2022-05-20 10:03:42 -05:00
resolve.h resolve: configure systemd-resolved's MulticastDNS= setting 2021-02-11 15:06:01 -06:00
rfkill.c module: Move declarations into separate header file 2019-11-07 23:40:13 +01:00
rfkill.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
rrm.c treewide: Prefer flexible arrays to zero-length arrays 2023-04-13 22:20:57 -05:00
sae.c sae: add debugging for incorrect password identifier 2023-12-06 10:58:44 -06:00
sae.h sae: add sae_sm_set_force_group_19 2021-08-25 13:05:05 -05:00
scan.c scan: parse password identifier/exclusive bits 2023-12-06 10:44:45 -06:00
scan.h scan: parse password identifier/exclusive bits 2023-12-06 10:44:45 -06:00
simauth.c simauth: check driver for NULL before canceling request 2020-11-16 17:04:30 -06:00
simauth.h treewide: Various style fixups 2022-01-11 11:07:05 -06:00
simutil.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
simutil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
station.c station: add handling for new NETCONFIG state 2024-01-08 22:04:53 -06:00
station.h station: add additional internal state, STATION_STATE_NETCONFIG 2024-01-08 22:04:41 -06:00
storage.c storage: Refactor storage_tls_session_{load,sync} 2022-11-17 10:04:12 -06:00
storage.h storage: Refactor storage_tls_session_{load,sync} 2022-11-17 10:04:12 -06:00
sysfs.c sysfs: introduce sysfs module 2021-11-03 17:44:00 -05:00
sysfs.h sysfs: introduce sysfs module 2021-11-03 17:44:00 -05:00
util.c util: add scan_freq_set_remove 2022-12-14 15:37:01 -06:00
util.h util: add scan_freq_set_remove 2022-12-14 15:37:01 -06:00
watchlist.c watchlist: Remove '__' prefix from static functions 2021-03-09 15:28:36 -06:00
watchlist.h watchlist: Save the watchlist pointer in WATCHLIST_NOTIFY_* 2020-05-01 11:38:57 -05:00
wiphy.c netdev: Fix buffer overflow with 32 character ssids 2023-11-27 11:27:26 +01:00
wiphy.h netdev: Fix buffer overflow with 32 character ssids 2023-11-27 11:27:26 +01:00
wsc.c station: add additional internal state, STATION_STATE_NETCONFIG 2024-01-08 22:04:41 -06:00
wsc.h wsc: Rework wsc_enrollee_destroy 2020-01-17 12:50:23 -06:00
wscutil.c wscutil: Avoid potential overflow 2022-01-14 09:49:47 -06:00
wscutil.h wscutil: Move DeviceType parsing from p2p & eap-wsc to a function 2021-04-26 10:48:03 -05:00