Modify GATT search service result event handling logic 30/223230/1
authorWootak Jung <wootak.jung@samsung.com>
Mon, 30 Dec 2019 00:20:31 +0000 (09:20 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Tue, 28 Jan 2020 00:36:25 +0000 (09:36 +0900)
send event from stored info

Change-Id: I238e5657331dd42edbb5f8ff164bb81d026a15bf

bt-oal/bluez_hal/src/bt-hal-gatt-client.c

index 552ed57..eaebfd6 100644 (file)
@@ -817,6 +817,26 @@ static bt_status_t _gattc_client_search_service(int conn_id)
                return BT_STATUS_FAIL;
        }
 
+       /* Check the service info is stored */
+       if (g_slist_length(conn_info->gatt_list_services) > 0) {
+               GSList *l = NULL;
+               hal_gattc_service_t *svc_info = NULL;
+               char svc_uuid_str[BT_HAL_UUID_STRING_LEN] = {0, };
+               DBG("Send event from service info list");
+               for (l = conn_info->gatt_list_services; l != NULL; l = g_slist_next(l)) {
+                       svc_info = l->data;
+                       if (svc_info == NULL)
+                               continue;
+                       _bt_hal_convert_uuid_type_to_string(svc_uuid_str, svc_info->svc_uuid.uu);
+                       _bt_hal_send_search_service_result_event(conn_id,
+                                       svc_info->is_primary, svc_uuid_str, conn_info->inst_id);
+               }
+               _bt_hal_send_search_service_complete_event(conn_id, BT_STATUS_SUCCESS);
+               return BT_STATUS_SUCCESS;
+       } else {
+               DBG("No stored service, request to bluez");
+       }
+
        _bt_hal_convert_addr_type_to_string(device_address,
                        (unsigned char *)conn_info->bd_addr.address);