mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-22 21:22:37 +01:00
station: refresh ordered network list on (dis)connect
Doing so ensures that the currently connected network is always at the beginning of the list. Previously, the list would only get updated after a scan. This fixes the documented behaviour of GetOrderedNetworks() DBus method, which states that the currently connected network is always at the beginning of the returned array.
This commit is contained in:
parent
4fbfa76fc5
commit
94d4b341e3
@ -1195,6 +1195,12 @@ static void station_enter_state(struct station *station,
|
|||||||
new_scan_results, station);
|
new_scan_results, station);
|
||||||
break;
|
break;
|
||||||
case STATION_STATE_CONNECTING:
|
case STATION_STATE_CONNECTING:
|
||||||
|
/* Refresh the ordered network list */
|
||||||
|
network_rank_update(station->connected_network, true);
|
||||||
|
l_queue_remove(station->networks_sorted, station->connected_network);
|
||||||
|
l_queue_insert(station->networks_sorted, station->connected_network,
|
||||||
|
network_rank_compare, NULL);
|
||||||
|
|
||||||
l_dbus_property_changed(dbus, netdev_get_path(station->netdev),
|
l_dbus_property_changed(dbus, netdev_get_path(station->netdev),
|
||||||
IWD_STATION_INTERFACE, "ConnectedNetwork");
|
IWD_STATION_INTERFACE, "ConnectedNetwork");
|
||||||
l_dbus_property_changed(dbus,
|
l_dbus_property_changed(dbus,
|
||||||
@ -1295,6 +1301,12 @@ static void station_reset_connection_state(struct station *station)
|
|||||||
station->connected_bss = NULL;
|
station->connected_bss = NULL;
|
||||||
station->connected_network = NULL;
|
station->connected_network = NULL;
|
||||||
|
|
||||||
|
/* Refresh the ordered network list */
|
||||||
|
network_rank_update(station->connected_network, false);
|
||||||
|
l_queue_remove(station->networks_sorted, station->connected_network);
|
||||||
|
l_queue_insert(station->networks_sorted, station->connected_network,
|
||||||
|
network_rank_compare, NULL);
|
||||||
|
|
||||||
l_dbus_property_changed(dbus, netdev_get_path(station->netdev),
|
l_dbus_property_changed(dbus, netdev_get_path(station->netdev),
|
||||||
IWD_STATION_INTERFACE, "ConnectedNetwork");
|
IWD_STATION_INTERFACE, "ConnectedNetwork");
|
||||||
l_dbus_property_changed(dbus, network_get_path(network),
|
l_dbus_property_changed(dbus, network_get_path(network),
|
||||||
|
Loading…
Reference in New Issue
Block a user