Fix: multiple LE scanner is not working 09/221309/1
authorinjun.yang <injun.yang@samsung.com>
Tue, 31 Dec 2019 04:40:50 +0000 (13:40 +0900)
committerinjun.yang <injun.yang@samsung.com>
Tue, 31 Dec 2019 05:03:16 +0000 (14:03 +0900)
Run scanner A & B > stop scanner A > scan result is not deliveried to scanner B

Change-Id: Ibf038e5d055d0fd6ec63c31e562b1d17ea1a47db

bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c

index f2d22f3..c338d84 100644 (file)
@@ -2071,6 +2071,8 @@ int _bt_start_le_scan(const char *sender)
                return BLUETOOTH_ERROR_IN_PROGRESS;
        }
 
+       scanner->is_scanning = TRUE;
+
        /* Check scanning is in progress or not by other users */
        if (_bt_is_le_scanning()) {
                int value = 1;
@@ -2091,7 +2093,7 @@ int _bt_start_le_scan(const char *sender)
                } else {
                        BT_INFO("LE Full Scan is already on progress");
                }
-               goto done;
+               return BLUETOOTH_ERROR_NONE;
        } else {
                if (is_le_set_scan_parameter == FALSE) {
                        /* Set default scan parameter same with BT_ADAPTER_LE_SCAN_MODE_LOW_ENERGY */
@@ -2123,8 +2125,6 @@ int _bt_start_le_scan(const char *sender)
                return BLUETOOTH_ERROR_INTERNAL;
        }
 
-done:
-       scanner->is_scanning = TRUE;
        return BLUETOOTH_ERROR_NONE;
 }
 
@@ -2173,6 +2173,7 @@ int _bt_stop_le_scan(const char *sender)
 
        _bt_unregister_all_scan_filters(sender);
 
+       scanner = __bt_find_scanner_from_list(sender);
        scanner_list = g_slist_remove(scanner_list, scanner);
        __bt_free_le_scanner(scanner);