From f2a1f32186febe7a2b2f7ca41966fc21d032c76a Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Fri, 15 Jun 2012 14:13:42 +0300 Subject: [PATCH] wifi: Stop scanning when disabling wifi Move wifi scan stopping from wifi remove to wifi disable since only wifi disable is called when the wifi technology is disabled. Removing a wifi device will first disable it and then continue with the removal procedure. --- plugins/wifi.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugins/wifi.c b/plugins/wifi.c index 3f9afad..0b69471 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -237,12 +237,6 @@ static void wifi_remove(struct connman_device *device) if (wifi == NULL) return; - stop_autoscan(device); - - /* In case of a user scan, device is still referenced */ - if (connman_device_get_scanning(device) == TRUE) - connman_device_unref(wifi->device); - iface_list = g_list_remove(iface_list, wifi); remove_networks(device, wifi); @@ -637,6 +631,14 @@ static int wifi_disable(struct connman_device *device) if (wifi->pending_network != NULL) wifi->pending_network = NULL; + stop_autoscan(device); + + /* In case of a user scan, device is still referenced */ + if (connman_device_get_scanning(device) == TRUE) { + connman_device_set_scanning(device, FALSE); + connman_device_unref(wifi->device); + } + remove_networks(device, wifi); ret = g_supplicant_interface_remove(wifi->interface, NULL, NULL); -- 2.7.4