diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/wifi.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/plugins/wifi.c b/plugins/wifi.c index 3f9afad9..0b694714 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); |