When being disconnected from an AP, a delayed scan is scheduled to make
sure the AP is still there. wpa_supplicant removes a BSS from its bss list
when it disappears from the scan results twice in a row.
Fixes BCM #6831
scanning == TRUE ? "started" : "finished");
}
+static gboolean delayed_scan(gpointer user_data)
+{
+ struct supplicant_task *task = user_data;
+
+ supplicant_scan(task->device);
+
+ return FALSE;
+}
+
static void state_change(struct supplicant_task *task, DBusMessage *msg)
{
DBusError error;
task_connect(task);
} else
task->network = NULL;
- } else
+ } else {
+ if (task->state == WPA_DISCONNECTED)
+ g_timeout_add_seconds(10, delayed_scan, task);
+
remove_network(task);
+ }
break;