summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>2015-01-15 13:43:02 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2015-01-15 13:54:18 +0200
commit5d75c8b4a4fba91d42f6b3e021bf10c1a3099815 (patch)
treef7755924c99bdbfa1f22ccd349c605fa1d99504d /gsupplicant
parent68248c432f890da027bbc1aea5d066adf11b1762 (diff)
downloadconnman-5d75c8b4a4fba91d42f6b3e021bf10c1a3099815.tar.gz
gsupplicant: Find the peer properly in the group when disconnected
This fixes the issue when signal_peer_disconnected() does not propagate the nominal event to plugins/wifi.c thus letting the peer as "ready" in src/peer.c when it should be set to "idle" (and properly disconnected).
Diffstat (limited to 'gsupplicant')
-rw-r--r--gsupplicant/supplicant.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 060a4df2..3bdf0dc0 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -3086,7 +3086,11 @@ static void signal_group_peer_disconnected(const char *path, DBusMessageIter *it
if (!peer_path)
return;
- elem = g_slist_find_custom(group->members, peer_path, g_str_equal);
+ for (elem = group->members; elem; elem = elem->next) {
+ if (!g_strcmp0(elem->data, peer_path))
+ break;
+ }
+
if (!elem)
return;