From ccb29663ccefc230bae15b04be3c3caf7883e9bc Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Fri, 20 Oct 2023 05:50:21 -0700 Subject: [PATCH] station: fix unintended netconfig_reset pre-roaming Commit 23f0f5717c did not correctly handle the reassociation case where the state is set from within station_try_next_transition. If IWD reassociates netconfig will get reset and DHCP will need to be done over again after the roam. Instead get the state ahead of station_try_next_transition. Fixes: 23f0f5717ca0 ("station: allow roaming before netconfig finishes") --- src/station.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/station.c b/src/station.c index f24b9aca..e18847bc 100644 --- a/src/station.c +++ b/src/station.c @@ -2470,6 +2470,7 @@ static void station_transition_start(struct station *station) { struct roam_bss *rbss; bool roaming = false; + bool connected = (station->state == STATION_STATE_CONNECTED); /* * For each failed attempt pop the BSS leaving the head of the queue @@ -2498,7 +2499,7 @@ static void station_transition_start(struct station *station) * still should roam in this case but need to restart netconfig once the * roam is finished. */ - if (station->netconfig && station->state != STATION_STATE_CONNECTED) { + if (station->netconfig && !connected) { netconfig_reset(station->netconfig); station->netconfig_after_roam = true; }