Hello,
I want to report an issue with connman. We set BackgroundScanning = false in main.conf.
However, I have found that this also causes connman to give an erroneous empty response to
the Scan() dbus call, potentially permanently disabling the device.
The key preconditions seem to be:
1) wpa_supplicant reports a max_ssids > 1
2) the computer must have been previously associated to a SSID which is no longer visible
3) as above, BackgroundScanning must be set to false
This causes the logic of wifi.c:wifi_scan() to fail. In particular:
1) wifi_scan_simple is not used, due to the above preconditions.
2) connman requests an active scan via wpa_supplicant for the ssids returned by
get_latest_connections.
3) connman does not request a followup passive scan, as BackgroundScanning is turned off,
which causes start_autoscan() to exit early.
This means that in the scenario above, connman will never see any wifi networks. Scan()
will always return an empty list, even if other SSIDs are available. This is potentially
fatal for embedded systems, so in my view this is a very serious issue.
This issue affects at least connman 1.33 and 1.34. I cannot test older versions due to
other dependencies.
One workaround is to enable BackgroundScanning.
Best,
Jonah