Hi Tomasz, Will still need to modify the patch a bit because start_autoscan() checks for wifi->connected and will not start if it's true. Therefore moving start_autoscan() after the wifi->connected has been set to false in the end of the interface_state()-function.
Br, Pasi On 06.05.2015 11:51, Tomasz Bursztyka wrote: > Hi Pasi, > > Nice catch! > > ACK from me. > > Tomasz > >> From: Pasi Sjöholm <pasi.sjoh...@jollamobile.com> >> >> It's possible from wpa_s to change the state from completed to >> scanning without going through disconnected state if interface >> signals that the carrier went off and on (IFF_LOWER_UP flag). >> >> This will cause dead lock similar in >> c810464828d6764bea304de3e9b6b151aa05e313 if the wifi gets into >> associating state as the network->connected is still true but >> wifi->connected is not. --- plugins/wifi.c | 5 +++++ 1 file >> changed, 5 insertions(+) >> >> diff --git a/plugins/wifi.c b/plugins/wifi.c index >> d0d7917..47df08e 100755 --- a/plugins/wifi.c +++ >> b/plugins/wifi.c @@ -2341,6 +2341,11 @@ static void >> interface_state(GSupplicantInterface *interface) switch (state) >> { case G_SUPPLICANT_STATE_SCANNING: + if (wifi->connected) >> { + connman_network_set_connected(network, false); + >> start_autoscan(device); + } + break; case >> G_SUPPLICANT_STATE_AUTHENTICATING: > > _______________________________________________ connman mailing > list connman@connman.net > https://lists.connman.net/mailman/listinfo/connman _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman