Wpa_supplicant might stop without signaling the peer to be lost, thus
when cleaning up it's up to remove_peer() to call peer_lost callback so
the wifi plugin can handle it properly.
---
 gsupplicant/supplicant.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 9bbc4ca..85b51b3 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -541,6 +541,8 @@ static void remove_peer(gpointer data)
 {
        GSupplicantPeer *peer = data;
 
+       callback_peer_lost(peer);
+
        g_free(peer->path);
        g_free(peer->name);
        g_free(peer->identifier);
@@ -2550,7 +2552,6 @@ static void signal_peer_lost(const char *path, 
DBusMessageIter *iter)
        if (!peer)
                return;
 
-       callback_peer_lost(peer);
        g_hash_table_remove(interface->peer_table, obj_path);
 }
 
-- 
1.8.5.5

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to