X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-service-adaptation%2Fservices%2Fadapter%2Fbt-service-core-adapter-le.c;h=5f146f3a33d0110c9df86d9a22b24255e17ddeca;hb=d3f64e9c21a3743c3b8fb36e4524a030945e3333;hp=dc5abdd2113b35018c79f8e71563e8b1ba778d13;hpb=a7d91acd99908f83be7da635febdb9cc7305898a;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c index dc5abdd..5f146f3 100644 --- a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c +++ b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c @@ -33,6 +33,7 @@ #include "bt-service-gatt.h" #include "bt-service-util.h" #include "bt-service-core-device.h" +#include "bt-service-battery-monitor.h" #include #include @@ -90,6 +91,8 @@ static bt_le_discovery_state_t adapter_le_discovery_state = LE_DISCOVERY_STOPPED typedef struct { char *sender; + uid_t uid; + pid_t pid; GSList *filter_list; gboolean is_scanning; } bt_adapter_le_scanner_t; @@ -1980,7 +1983,7 @@ int _bt_unregister_all_scan_filters(const char* sender) return BLUETOOTH_ERROR_NONE; } -int _bt_start_le_scan(const char *sender) +int _bt_start_le_scan(const char *sender, uid_t uid, pid_t pid) { bt_adapter_le_scanner_t *scanner; int ret; @@ -1991,6 +1994,8 @@ int _bt_start_le_scan(const char *sender) retv_if(scanner == NULL, BLUETOOTH_ERROR_INTERNAL); scanner->sender = g_strdup(sender); + scanner->uid = uid; + scanner->pid = pid; scanner_list = g_slist_append(scanner_list, scanner); } @@ -2131,12 +2136,16 @@ void _bt_check_le_scanner_app_termination(const char *sender) if (!scanner) return; - if (scanner->is_scanning) - _bt_stop_le_scan(sender); + _bt_bm_remove_scan_app(SCAN_LE, scanner->uid, scanner->pid); + + if (scanner->is_scanning) { + /* Free 'scanner' into the function */ + if (_bt_stop_le_scan(sender) != BLUETOOTH_ERROR_NOT_IN_OPERATION) + return; + } scanner_list = g_slist_remove(scanner_list, scanner); - g_free(scanner->sender); - g_free(scanner); + __bt_free_le_scanner(scanner); } int _bt_service_le_init(void) @@ -2285,7 +2294,7 @@ int _bt_set_le_static_random_address(gboolean is_enable) result = adapter_set_le_static_random_address(is_enable); if (result != OAL_STATUS_SUCCESS) { - BT_ERR("adapter_set_connectable failed: %d", result); + BT_ERR("adapter_set_le_static_random_address failed: %d", result); result = BLUETOOTH_ERROR_INTERNAL; } else { BT_INFO("SetLeStaticRandomAddress as %d", is_enable);