mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 14:49:24 +01:00
station: handle netconfig after roaming for FW roams
This was not taken into account for FW roams and would result in the station state being set to connected regardless of netconfig's result.
This commit is contained in:
parent
a2fff11823
commit
593fad5260
@ -3406,6 +3406,16 @@ static void station_beacon_lost(struct station *station)
|
|||||||
station_roam_timeout_rearm(station, LOSS_ROAM_RATE_LIMIT);
|
station_roam_timeout_rearm(station, LOSS_ROAM_RATE_LIMIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void station_event_roaming(struct station *station)
|
||||||
|
{
|
||||||
|
if (station->netconfig && station->state != STATION_STATE_CONNECTED) {
|
||||||
|
netconfig_reset(station->netconfig);
|
||||||
|
station->netconfig_after_roam = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
station_enter_state(station, STATION_STATE_FW_ROAMING);
|
||||||
|
}
|
||||||
|
|
||||||
static void station_netdev_event(struct netdev *netdev, enum netdev_event event,
|
static void station_netdev_event(struct netdev *netdev, enum netdev_event event,
|
||||||
void *event_data, void *user_data)
|
void *event_data, void *user_data)
|
||||||
{
|
{
|
||||||
@ -3433,7 +3443,7 @@ static void station_netdev_event(struct netdev *netdev, enum netdev_event event,
|
|||||||
station_signal_agent_notify(station);
|
station_signal_agent_notify(station);
|
||||||
break;
|
break;
|
||||||
case NETDEV_EVENT_ROAMING:
|
case NETDEV_EVENT_ROAMING:
|
||||||
station_enter_state(station, STATION_STATE_FW_ROAMING);
|
station_event_roaming(station);
|
||||||
break;
|
break;
|
||||||
case NETDEV_EVENT_ROAMED:
|
case NETDEV_EVENT_ROAMED:
|
||||||
station_event_roamed(station, (struct scan_bss *) event_data);
|
station_event_roamed(station, (struct scan_bss *) event_data);
|
||||||
|
Loading…
Reference in New Issue
Block a user