client_info->conn_id = conn_id;
client_info->inst_id = server_inst_id;
hal_gattc_client_info_list = g_slist_append(hal_gattc_client_info_list, client_info);
+ DBG("Added client connection info in list");
/* Add server connection info in list */
- server_info = g_malloc0(sizeof(hal_gattc_server_info_t));
- memcpy(server_info->bd_addr.address, bd_addr->address, BT_HAL_ADDRESS_LENGTH_MAX);
- server_info->inst_id = server_inst_id;
- hal_gattc_server_info_list = g_slist_append(hal_gattc_server_info_list, server_info);
+ server_info = __bt_find_gatt_conn_info(bd_addr);
+ if (server_info == NULL) {
+ server_info = g_malloc0(sizeof(hal_gattc_server_info_t));
+ memcpy(server_info->bd_addr.address, bd_addr->address, BT_HAL_ADDRESS_LENGTH_MAX);
+ server_info->inst_id = server_inst_id;
+ hal_gattc_server_info_list = g_slist_append(hal_gattc_server_info_list, server_info);
+ DBG("Added server connection info in list");
+ }
- DBG("Added client/server connection info in list");
return BT_STATUS_SUCCESS;
}