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

Reply via email to