@@ -159,9 +159,9 @@ lws_esp32_scan_update(lws_netdev_instance_wifi_t *wnd)
159159 w -> ssid_len = m ;
160160
161161 memcpy (w -> bssid , ar -> bssid , 6 );
162-
163- lws_dll2_add_sorted ( & w -> list , & wnd -> scan ,
164- lws_netdev_wifi_rssi_sort_compare );
162+ } else {
163+ /* we will update the rssi and re-insert it */
164+ lws_dll2_remove ( & w -> list );
165165 }
166166
167167 if (w -> rssi_count == LWS_ARRAY_SIZE (w -> rssi ))
@@ -172,6 +172,9 @@ lws_esp32_scan_update(lws_netdev_instance_wifi_t *wnd)
172172 w -> rssi_avg += w -> rssi [w -> rssi_next ++ ];
173173 w -> rssi_next = w -> rssi_next & (LWS_ARRAY_SIZE (w -> rssi ) - 1 );
174174
175+ lws_dll2_add_sorted (& w -> list , & wnd -> scan ,
176+ lws_netdev_wifi_rssi_sort_compare );
177+
175178 w -> ch = ar -> primary ;
176179 w -> authmode = ar -> authmode ;
177180 w -> last_seen = now ;
@@ -234,12 +237,9 @@ lws_netdev_wifi_event_plat(struct lws_netdev_instance *nd, lws_usec_t timestamp,
234237 switch (atoi (ev )) {
235238 case WIFI_EVENT_STA_START :
236239 wnd -> state = LWSNDVWIFI_STATE_INITIAL ;
237- if (!lws_netdev_wifi_redo_last (wnd ))
238- break ;
239240
240241 /*
241- * if the "try last successful" one fails, start the
242- * scan by falling through
242+ * always start the scan by falling through
243243 */
244244
245245 case WIFI_EVENT_STA_DISCONNECTED :
0 commit comments