[connman]: Fixed Scan Issue 87/90287/5
authorManeesh Jain <maneesh.jain@samsung.com>
Thu, 29 Sep 2016 09:13:12 +0000 (14:43 +0530)
committerManeesh Jain <maneesh.jain@samsung.com>
Thu, 29 Sep 2016 10:58:46 +0000 (16:28 +0530)
Description: In following use case, ConnMan always perform the ssid based scan
and unable to find the new AP's.
a. Connect with any AP (Normal or Hidden)
b. Disconnect with AP
c. After this, ConnMan always perform the SSID based scan.

Impact: Tizen Device is unable to scan new AP's.

Reason:
In Tizen, ConnMan configure the "BackgroundScanning" flag as false because background
scan feature is implemented in net-config module.
Due to this reason, I have added patch to sync-up the ConnMan scan implementation
with net-config background scan feature.

Change-Id: I0cff11df18780816b5f61a647c2298c781e78557
Signed-off-by: Maneesh Jain <maneesh.jain@samsung.com>
packaging/connman.spec
plugins/wifi.c

index 064fec4..953d518 100755 (executable)
@@ -4,7 +4,7 @@
 
 Name:           connman
 Version:        1.29
-Release:        17
+Release:        18
 License:        GPL-2.0+
 Summary:        Connection Manager
 Url:            http://connman.net
index 1739e58..c0079b3 100755 (executable)
@@ -131,6 +131,7 @@ struct wifi_data {
 #if defined TIZEN_EXT
        int assoc_retry_count;
        struct connman_network *scan_pending_network;
+       bool allow_full_scan;
 #endif
 };
 
@@ -144,6 +145,7 @@ static gboolean found_with_first_scan = false;
 static gboolean is_wifi_notifier_registered = false;
 #endif
 
+
 static GList *iface_list = NULL;
 
 static GList *pending_wifi_device = NULL;
@@ -1319,6 +1321,11 @@ static void scan_callback(int result, GSupplicantInterface *interface,
                connman_device_unref(device);
 
 #if defined TIZEN_EXT
+       if (wifi && wifi->allow_full_scan) {
+               DBG("Trigger Full Channel Scan");
+               throw_wifi_scan(device, scan_callback);
+               wifi->allow_full_scan = FALSE;
+       }
        if (wifi && wifi->scan_pending_network && result != -EIO) {
                network_connect(wifi->scan_pending_network);
                wifi->scan_pending_network = NULL;
@@ -1928,6 +1935,13 @@ static int wifi_scan(enum connman_service_type type,
 
        connman_device_ref(device);
 
+#if defined TIZEN_EXT
+       /*To allow the Full Scan after ssid based scan, set the flag here
+     It is required because Tizen does not use the ConnMan specific
+     backgroung Scan feature.Tizen has added the BG Scan feature in net-config
+     To sync with up ConnMan, we need to issue the Full Scan after SSID specific scan.*/
+        wifi->allow_full_scan = TRUE;
+#endif
        reset_autoscan(device);
 
        ret = g_supplicant_interface_scan(wifi->interface, scan_params,