Ok ACK from me then.

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 | 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;
        case G_SUPPLICANT_STATE_COMPLETED:
                wifi->connected = true;
                break;

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to