mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-01-03 10:32:33 +01:00
station: fix unintended netconfig_reset pre-roaming
Commit23f0f5717c
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:23f0f5717c
("station: allow roaming before netconfig finishes")
This commit is contained in:
parent
2c7bf2756e
commit
ccb29663cc
@ -2470,6 +2470,7 @@ static void station_transition_start(struct station *station)
|
|||||||
{
|
{
|
||||||
struct roam_bss *rbss;
|
struct roam_bss *rbss;
|
||||||
bool roaming = false;
|
bool roaming = false;
|
||||||
|
bool connected = (station->state == STATION_STATE_CONNECTED);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For each failed attempt pop the BSS leaving the head of the queue
|
* 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
|
* still should roam in this case but need to restart netconfig once the
|
||||||
* roam is finished.
|
* roam is finished.
|
||||||
*/
|
*/
|
||||||
if (station->netconfig && station->state != STATION_STATE_CONNECTED) {
|
if (station->netconfig && !connected) {
|
||||||
netconfig_reset(station->netconfig);
|
netconfig_reset(station->netconfig);
|
||||||
station->netconfig_after_roam = true;
|
station->netconfig_after_roam = true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user