Hi Pasi, On ke, 2015-05-06 at 14:22 +0300, pasi.sjoh...@jolla.com wrote: > 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 | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/plugins/wifi.c b/plugins/wifi.c > index d0d7917..a22faae 100755 > --- a/plugins/wifi.c > +++ b/plugins/wifi.c > @@ -2341,6 +2341,9 @@ static void interface_state(GSupplicantInterface > *interface) > > switch (state) { > case G_SUPPLICANT_STATE_SCANNING: > + if (wifi->connected) > + connman_network_set_connected(network, false); > + > break; > > case G_SUPPLICANT_STATE_AUTHENTICATING: > @@ -2435,6 +2438,13 @@ static void interface_state(GSupplicantInterface > *interface) > else > wifi->connected = false; > break; > + case G_SUPPLICANT_STATE_SCANNING: > + if (wifi->connected) { > + wifi->connected = false; > + start_autoscan(device); > + } else > + wifi->connected = false; > + break;
or you could just say + if (wifi->connected) + start_autoscan(device); + + wifi->connected = false; + break; Cheers, Jukka _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman