---
Hi Daniel,

Have fun :]
I really don't like the patch if it saves us for now...

Tomasz

 plugins/wifi.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/plugins/wifi.c b/plugins/wifi.c
index d10612c..571dbf1 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -1180,7 +1180,11 @@ static void interface_state(GSupplicantInterface 
*interface)
        case G_SUPPLICANT_STATE_ASSOCIATING:
                stop_autoscan(device);
 
-               connman_network_set_associating(network, TRUE);
+               if (wifi->state != G_SUPPLICANT_STATE_COMPLETED)
+                       connman_network_set_associating(network, TRUE);
+               else
+                       connman_warn("We might be roaming right now");
+
                break;
 
        case G_SUPPLICANT_STATE_COMPLETED:
@@ -1249,7 +1253,20 @@ static void interface_state(GSupplicantInterface 
*interface)
                break;
        }
 
-       wifi->state = state;
+       /* We don't store wpa_s state when reassociating (roaming?) */
+       switch (state) {
+       case G_SUPPLICANT_STATE_AUTHENTICATING:
+       case G_SUPPLICANT_STATE_ASSOCIATING:
+       case G_SUPPLICANT_STATE_ASSOCIATED:
+       case G_SUPPLICANT_STATE_4WAY_HANDSHAKE:
+       case G_SUPPLICANT_STATE_GROUP_HANDSHAKE:
+               if (wifi->state == G_SUPPLICANT_STATE_COMPLETED) {
+                       connman_warn("We might be roaming right now");
+                       break;
+               }
+       default:
+               wifi->state = state;
+       }
 
        DBG("DONE");
 }
-- 
1.7.8.5

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to