wifi: Add support for autoscan request
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Wed, 4 Jul 2012 14:24:41 +0000 (17:24 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 5 Jul 2012 07:08:40 +0000 (09:08 +0200)
plugins/wifi.c

index 0a842f9..c0f7ddc 100644 (file)
@@ -604,6 +604,18 @@ static void setup_autoscan(struct wifi_data *wifi)
        start_autoscan(wifi->device);
 }
 
+static void interface_autoscan_callback(int result,
+                                       GSupplicantInterface *interface,
+                                                       void *user_data)
+{
+       struct wifi_data *wifi = user_data;
+
+       if (result < 0) {
+               DBG("Could not enable Autoscan, falling back...");
+               setup_autoscan(wifi);
+       }
+}
+
 static void interface_create_callback(int result,
                                        GSupplicantInterface *interface,
                                                        void *user_data)
@@ -636,7 +648,11 @@ static void interface_create_callback(int result,
                return;
 
        /* Setting up automatic scanning */
-       setup_autoscan(wifi);
+       if (g_supplicant_interface_autoscan(interface, AUTOSCAN_DEFAULT,
+                               interface_autoscan_callback, wifi) < 0) {
+               DBG("Could not enable Autoscan, falling back...");
+               setup_autoscan(wifi);
+       }
 }
 
 static int wifi_enable(struct connman_device *device)