- stop_autoscan() should unref the device only when relevant, i.e. when
interval and/or timeout have been set.
- autoscan_scan_callback() should unref the device since it has been
referenced in throw_wifi_scan()
---
Hi,

Patch tested and now it ref/unref the device at the right places.

Tomasz

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

diff --git a/plugins/wifi.c b/plugins/wifi.c
index 28b3563..9ce380b 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -214,8 +214,10 @@ static void stop_autoscan(struct connman_device *device)
 
        autoscan = wifi->autoscan;
 
-       if (autoscan->timeout > 0)
-               g_source_remove(autoscan->timeout);
+       if (autoscan->timeout == 0 && autoscan->interval == 0)
+               return;
+
+       g_source_remove(autoscan->timeout);
 
        autoscan->timeout = 0;
        autoscan->interval = 0;
@@ -281,6 +283,7 @@ static void autoscan_scan_callback(int result,
        DBG("");
 
        connman_device_set_scanning(device, FALSE);
+       connman_device_unref(device);
 }
 
 static gboolean autoscan_timeout(gpointer data)
-- 
1.7.8.5

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

Reply via email to