*/
#include <stdio.h>
-//#include <dbus/dbus-glib.h>
-//#include <dbus/dbus.h>
+#include <dbus/dbus.h>
#include <gio/gio.h>
#include <glib.h>
#include <dlog.h>
static gboolean scan_filter_enabled = FALSE;
static bt_le_scan_type_t le_scan_type = BT_LE_PASSIVE_SCAN;
+static GSList *gatt_client_senders = NULL;
+
+
+gboolean _bt_is_set_scan_parameter(void)
+{
+ return is_le_set_scan_parameter;
+}
+
+void _bt_init_gatt_client_senders(void)
+{
+ _bt_clear_request_list();
+}
+
+int _bt_insert_gatt_client_sender(char *sender)
+{
+ char *info;
+
+ retv_if(sender == NULL, BLUETOOTH_ERROR_INVALID_PARAM);
+
+ info = g_strdup(sender);
+ retv_if(info == NULL, BLUETOOTH_ERROR_MEMORY_ALLOCATION);
+
+ gatt_client_senders = g_slist_append(gatt_client_senders, info);
+
+ BT_DBG("insert sender: %s", sender);
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+int _bt_delete_gatt_client_sender(char *sender)
+{
+ GSList *l;
+ char *info;
+
+ BT_DBG("remove sender: %s", sender);
+
+ for (l = gatt_client_senders; l != NULL; l = g_slist_next(l)) {
+ info = l->data;
+ if (info == NULL)
+ continue;
+
+ if (g_strcmp0(info, sender) == 0) {
+ BT_DBG("remove info");
+ gatt_client_senders = g_slist_remove(gatt_client_senders, info);
+ g_free(info);
+ return BLUETOOTH_ERROR_NONE;
+ }
+ }
+
+ return BLUETOOTH_ERROR_NOT_FOUND;
+}
+
+void _bt_clear_gatt_client_senders(void)
+{
+ if (gatt_client_senders) {
+ g_slist_foreach(gatt_client_senders, (GFunc)g_free, NULL);
+ g_slist_free(gatt_client_senders);
+ gatt_client_senders = NULL;
+ }
+}
+
+static void __bt_send_foreach_event(gpointer data, gpointer user_data)
+{
+ char *sender = data;
+ GVariant *param = user_data;
+
+ _bt_send_event_to_dest(sender, BT_DEVICE_EVENT,BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED,
+ param);
+}
+
+void _bt_send_char_value_changed_event(void *param)
+{
+ g_slist_foreach(gatt_client_senders, __bt_send_foreach_event,
+ (gpointer)param);
+}
+
void __bt_free_le_adv_slot(void)
{
int i;
bt_adapter_le_scanner_t *scanner;
GSList *fl;
bluetooth_le_scan_filter_t *filter_data;
- gboolean *slot_check_list;
+ gboolean *slot_check_list = NULL;
int i;
if (le_feature_info.max_filter == 0) {
return -1;
}
slot_check_list = g_malloc0(sizeof(gboolean) * le_feature_info.max_filter);
+ if (slot_check_list == NULL) {
+ BT_ERR("Fail to allocate memory");
+ return -1;
+ }
for (l = scanner_list; l != NULL; l = g_slist_next(l)) {
scanner = l->data;
GDBusProxy *proxy;
GError *error = NULL;
GVariant *ret, *param;
- GVariant *arr_uuid_param, *arr_uuid_mask_param;
- GVariant *arr_data_param, *arr_data_mask_param;
- GArray *arr_uuid;
- GArray *arr_uuid_mask;
- GArray *arr_data;
- GArray *arr_data_mask;
+ GVariant *arr_uuid_param = NULL, *arr_uuid_mask_param = NULL;
+ GVariant *arr_data_param = NULL, *arr_data_mask_param = NULL;
+ GArray *arr_uuid = NULL;
+ GArray *arr_uuid_mask = NULL;
+ GArray *arr_data = NULL;
+ GArray *arr_data_mask = NULL;
bt_adapter_le_scanner_t *scanner = NULL;
bluetooth_le_scan_filter_t *filter_data = NULL;
int feature_selection = 0;
proxy = _bt_get_adapter_proxy();
retv_if(proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
- arr_uuid = g_array_new(TRUE, TRUE, sizeof(guint8));
- arr_uuid_mask = g_array_new(TRUE, TRUE, sizeof(guint8));
- arr_data = g_array_new(TRUE, TRUE, sizeof(guint8));
- arr_data_mask = g_array_new(TRUE, TRUE, sizeof(guint8));
-
- arr_uuid_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->service_uuid.data_len * sizeof(guint8), TRUE, NULL, NULL);
- arr_uuid_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid_mask, filter->service_uuid_mask.data_len * sizeof(guint8), TRUE, NULL, NULL);
- arr_data_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_data, filter->service_data.data_len * sizeof(guint8), TRUE, NULL, NULL);
- arr_data_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_data_mask, filter->service_data_mask.data_len * sizeof(guint8), TRUE, NULL, NULL);
-
if (filter->added_features & BLUETOOTH_LE_SCAN_FILTER_FEATURE_DEVICE_ADDRESS) {
char address[BT_ADDRESS_STRING_SIZE] = { 0 };
feature_selection |= BLUETOOTH_LE_SCAN_FILTER_FEATURE_DEVICE_ADDRESS;
_bt_convert_addr_type_to_string(address, filter->device_address.addr);
+ arr_uuid_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_uuid_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_data_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_data_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+
param = g_variant_new("(iiiiii@ay@aysu@ay@ay)",
0, // client_if
0, // action (Add - 0x00, Delete - 0x01, Clear - 0x02)
BLUETOOTH_LE_SCAN_FILTER_FEATURE_DEVICE_ADDRESS, // filter_type
- slot_id, // filter_index
+ *slot_id, // filter_index
0, // company_id
0, // company_id_mask
arr_uuid_param, // p_uuid
if (filter->added_features & BLUETOOTH_LE_SCAN_FILTER_FEATURE_DEVICE_NAME) {
feature_selection |= BLUETOOTH_LE_SCAN_FILTER_FEATURE_DEVICE_NAME;
+ arr_uuid_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_uuid_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_data_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_data_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+
param = g_variant_new("(iiiiii@ay@aysu@ay@ay)",
0, // client_if
0, // action (Add - 0x00, Delete - 0x01, Clear - 0x02)
BLUETOOTH_LE_SCAN_FILTER_FEATURE_DEVICE_NAME, // filter_type
- slot_id, // filter_index
+ *slot_id, // filter_index
0, // company_id
0, // company_id_mask
arr_uuid_param, // p_uuid
if (filter->added_features & BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_UUID) {
feature_selection |= BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_UUID;
+ arr_uuid = g_array_new(TRUE, TRUE, sizeof(guint8));
+ arr_uuid_mask = g_array_new(TRUE, TRUE, sizeof(guint8));
+
g_array_append_vals(arr_uuid, filter->service_uuid.data.data, filter->service_uuid.data_len * sizeof(guint8));
g_array_append_vals(arr_uuid_mask, filter->service_uuid_mask.data.data, filter->service_uuid_mask.data_len * sizeof(guint8));
arr_uuid_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->service_uuid.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_uuid->data, arr_uuid->len, TRUE, NULL, NULL);
arr_uuid_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->service_uuid_mask.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_uuid_mask->data, arr_uuid_mask->len, TRUE, NULL, NULL);
+ arr_data_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_data_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
param = g_variant_new("(iiiiii@ay@aysu@ay@ay)",
0, // client_if
0, // action (Add - 0x00, Delete - 0x01, Clear - 0x02)
BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_UUID, // filter_type
- slot_id, // filter_index
+ *slot_id, // filter_index
0, // company_id
0, // company_id_mask
arr_uuid_param, // p_uuid
}
if (ret)
g_variant_unref(ret);
+
+ g_array_free(arr_uuid, TRUE);
+ g_array_free(arr_uuid_mask, TRUE);
+ g_array_free(arr_data, TRUE);
+ g_array_free(arr_data_mask, TRUE);
}
if (filter->added_features & BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_SOLICITATION_UUID) {
feature_selection |= BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_SOLICITATION_UUID;
+ arr_uuid = g_array_new(TRUE, TRUE, sizeof(guint8));
+ arr_uuid_mask = g_array_new(TRUE, TRUE, sizeof(guint8));
+
g_array_append_vals(arr_uuid, filter->service_solicitation_uuid.data.data, filter->service_solicitation_uuid.data_len * sizeof(guint8));
g_array_append_vals(arr_uuid_mask, filter->service_solicitation_uuid_mask.data.data, filter->service_solicitation_uuid_mask.data_len * sizeof(guint8));
arr_uuid_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->service_solicitation_uuid.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_uuid->data, arr_uuid->len, TRUE, NULL, NULL);
arr_uuid_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->service_solicitation_uuid_mask.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_uuid_mask->data, arr_uuid_mask->len, TRUE, NULL, NULL);
+ arr_data_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_data_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
param = g_variant_new("(iiiiii@ay@aysu@ay@ay)",
0, // client_if
0, // action (Add - 0x00, Delete - 0x01, Clear - 0x02)
BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_SOLICITATION_UUID, // filter_type
- slot_id, // filter_index
+ *slot_id, // filter_index
0, // company_id
0, // company_id_mask
arr_uuid_param, // p_uuid
}
if (ret)
g_variant_unref(ret);
+
+ g_array_free(arr_uuid, TRUE);
+ g_array_free(arr_uuid_mask, TRUE);
}
if (filter->added_features & BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_DATA) {
feature_selection |= BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_DATA;
+ arr_data = g_array_new(TRUE, TRUE, sizeof(guint8));
+ arr_data_mask = g_array_new(TRUE, TRUE, sizeof(guint8));
+
g_array_append_vals(arr_data, filter->service_data.data.data, filter->service_data.data_len * sizeof(guint8));
g_array_append_vals(arr_data_mask, filter->service_data_mask.data.data, filter->service_data_mask.data_len * sizeof(guint8));
+ arr_uuid_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_uuid_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
arr_data_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->service_data.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_data->data, arr_data->len, TRUE, NULL, NULL);
arr_data_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->service_data_mask.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_data_mask->data, arr_data_mask->len, TRUE, NULL, NULL);
param = g_variant_new("(iiiiii@ay@aysu@ay@ay)",
0, // client_if
0, // action (Add - 0x00, Delete - 0x01, Clear - 0x02)
BLUETOOTH_LE_SCAN_FILTER_FEATURE_SERVICE_DATA, // filter_type
- slot_id, // filter_index
+ *slot_id, // filter_index
0, // company_id
0, // company_id_mask
arr_uuid_param, // p_uuid
}
if (ret)
g_variant_unref(ret);
+
+ g_array_free(arr_data, TRUE);
+ g_array_free(arr_data_mask, TRUE);
}
if (filter->added_features & BLUETOOTH_LE_SCAN_FILTER_FEATURE_MANUFACTURER_DATA) {
feature_selection |= BLUETOOTH_LE_SCAN_FILTER_FEATURE_MANUFACTURER_DATA;
+ arr_data = g_array_new(TRUE, TRUE, sizeof(guint8));
+ arr_data_mask = g_array_new(TRUE, TRUE, sizeof(guint8));
+
g_array_append_vals(arr_data, filter->manufacturer_data.data.data, filter->manufacturer_data.data_len * sizeof(guint8));
g_array_append_vals(arr_data_mask, filter->manufacturer_data_mask.data.data, filter->manufacturer_data_mask.data_len * sizeof(guint8));
+ arr_uuid_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
+ arr_uuid_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
+ NULL, 0, TRUE, NULL, NULL);
arr_data_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->manufacturer_data.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_data->data, arr_data->len, TRUE, NULL, NULL);
arr_data_mask_param = g_variant_new_from_data((const GVariantType *)"ay",
- arr_uuid, filter->manufacturer_data_mask.data_len * sizeof(guint8), TRUE, NULL, NULL);
+ arr_data_mask->data, arr_data_mask->len, TRUE, NULL, NULL);
param = g_variant_new("(iiiiii@ay@aysu@ay@ay)",
0, // client_if
0, // action (Add - 0x00, Delete - 0x01, Clear - 0x02)
BLUETOOTH_LE_SCAN_FILTER_FEATURE_MANUFACTURER_DATA, // filter_type
- slot_id, // filter_index
+ *slot_id, // filter_index
filter->manufacturer_id, // company_id
0xFFFF, // company_id_mask
arr_uuid_param, // p_uuid
}
if (ret)
g_variant_unref(ret);
- }
- g_array_free(arr_uuid, TRUE);
- g_array_free(arr_uuid_mask, TRUE);
- g_array_free(arr_data, TRUE);
- g_array_free(arr_data_mask, TRUE);
+ g_array_free(arr_data, TRUE);
+ g_array_free(arr_data_mask, TRUE);
+ }
BT_DBG("Filter selection %.2x", feature_selection);
param = g_variant_new("(iiiiiiiiiiii)",
0, // client_if
0, // action (Add - 0x00, Delete - 0x01, Clear - 0x02)
- slot_id, // filter_index
+ *slot_id, // filter_index
feature_selection, // feat_seln
0, // list_logic_type (OR - 0x00, AND - 0x01)
1, // filt_logic_type (OR - 0x00, AND - 0x01)
scanner = __bt_find_scanner_from_list(sender);
if (scanner == NULL) {
scanner = g_malloc0(sizeof(bt_adapter_le_scanner_t));
- scanner->sender = strdup(sender);
- scanner_list = g_slist_append(scanner_list, scanner);
+ if (scanner) {
+ scanner->sender = strdup(sender);
+ scanner_list = g_slist_append(scanner_list, scanner);
+ }
}
filter_data = g_malloc0(sizeof(bluetooth_le_scan_filter_t));
- memcpy(filter_data, filter, sizeof(bluetooth_le_scan_filter_t));
- filter_data->slot_id = *slot_id;
+ if (filter_data) {
+ memcpy(filter_data, filter, sizeof(bluetooth_le_scan_filter_t));
+ filter_data->slot_id = *slot_id;
- scanner->filter_list = g_slist_append(scanner->filter_list, filter_data);
+ if (scanner)
+ scanner->filter_list = g_slist_append(scanner->filter_list, filter_data);
+ }
if (ret)
g_variant_unref(ret);
if (scanner == NULL) {
scanner = g_malloc0(sizeof(bt_adapter_le_scanner_t));
+ retv_if(scanner == NULL, BLUETOOTH_ERROR_INTERNAL);
+
scanner->sender = strdup(sender);
scanner_list = g_slist_append(scanner_list, scanner);
}
BT_ERR("BT is already in LE scanning");
return BLUETOOTH_ERROR_IN_PROGRESS;
}
+ scanner->is_scanning = TRUE;
proxy = _bt_get_adapter_proxy();
retv_if(proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
} else {
BT_INFO("LE Full Scan is already on progress");
}
-
- scanner->is_scanning = TRUE;
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 */
bluetooth_le_scan_params_t scan_params;
- scan_params.type = 1;
+ scan_params.type = BT_LE_ACTIVE_SCAN;
scan_params.interval = 5000;
scan_params.window = 500;
_bt_set_scan_parameters(&scan_params);
if (ret)
g_variant_unref(ret);
-
- scanner->is_scanning = TRUE;
return BLUETOOTH_ERROR_NONE;
}
return BLUETOOTH_ERROR_NONE;
}
+int _bt_initialize_ipsp(void)
+{
+ BT_DBG("+");
+ GDBusProxy *proxy;
+ GError *error = NULL;
+ GVariant *ret;
+
+ if (_bt_adapter_get_status() != BT_ACTIVATED &&
+ _bt_adapter_get_le_status() != BT_LE_ACTIVATED) {
+ return BLUETOOTH_ERROR_DEVICE_NOT_ENABLED;
+ }
+
+ proxy = _bt_get_adapter_proxy();
+ retv_if(proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
+
+ ret = g_dbus_proxy_call_sync(proxy, "InitializeIpsp",
+ NULL,G_DBUS_CALL_FLAGS_NONE,
+ -1, NULL, &error);
+ if (error) {
+ BT_ERR("Initialize IPSP Failed :[%s]", error->message);
+ g_clear_error(&error);
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+ if (ret)
+ g_variant_unref(ret);
+
+ BT_INFO("IPSP initialization called successfully");
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+int _bt_deinitialize_ipsp(void)
+{
+ BT_DBG("+");
+ GDBusProxy *proxy;
+ GError *error = NULL;
+ GVariant *ret;
+ bt_le_status_t le_status = _bt_adapter_get_le_status();
+
+ if (_bt_adapter_get_status() != BT_ACTIVATED &&
+ _bt_adapter_get_le_status() != BT_LE_ACTIVATED) {
+ return BLUETOOTH_ERROR_DEVICE_NOT_ENABLED;
+ }
+
+ proxy = _bt_get_adapter_proxy();
+ retv_if(proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
+
+ ret = g_dbus_proxy_call_sync(proxy, "DeinitializeIpsp",
+ NULL,G_DBUS_CALL_FLAGS_NONE,
+ -1, NULL, &error);
+ if (error) {
+ BT_ERR("De-Initialize IPSP Failed :[%s]", error->message);
+ g_clear_error(&error);
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+ if (ret)
+ g_variant_unref(ret);
+
+ BT_INFO("IPSP De-initialization called successfully");
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
int _bt_le_read_maximum_data_length(
bluetooth_le_read_maximum_data_length_t *max_le_datalength)
{
GError *error = NULL;
GDBusProxy *proxy;
GVariant *reply = NULL;
+ int ret = BLUETOOTH_ERROR_NONE;
guint16 max_tx_octets, max_tx_time;
guint16 max_rx_octets, max_rx_time;
- int err;
proxy = _bt_get_adapter_proxy();
retv_if(proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
return BLUETOOTH_ERROR_INTERNAL;
}
- g_variant_get(reply ,"(qqqqi)", &max_tx_octets, &max_tx_time,
- &max_rx_octets, &max_rx_time, &err);
-
- g_variant_unref(reply);
-
- if (err) {
- BT_DBG("error is : %d", err);
- return BLUETOOTH_ERROR_INTERNAL;
- }
+ g_variant_get(reply ,"(qqqq)", &max_tx_octets, &max_tx_time,
+ &max_rx_octets, &max_rx_time);
max_le_datalength->max_tx_octets = max_tx_octets;
max_le_datalength->max_tx_time = max_tx_time;
max_le_datalength->max_rx_octets = max_rx_octets;
max_le_datalength->max_rx_time = max_rx_time;
+ g_variant_unref(reply);
+
return BLUETOOTH_ERROR_NONE;
}
int _bt_le_write_host_suggested_default_data_length(
GError *error = NULL;
GDBusProxy *proxy;
GVariant *reply = NULL;
+ int ret = BLUETOOTH_ERROR_NONE;
proxy = _bt_get_adapter_proxy();
retv_if(proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
GError *error = NULL;
GDBusProxy *proxy;
GVariant *reply = NULL;
+ int ret = BLUETOOTH_ERROR_NONE;
guint16 def_tx_octets, def_tx_time;
- int err;
proxy = _bt_get_adapter_proxy();
retv_if(proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
return BLUETOOTH_ERROR_INTERNAL;
}
- g_variant_get(reply ,"(qqi)", &def_tx_octets, &def_tx_time, &err);
-
- g_variant_unref(reply);
-
- if (err) {
- BT_DBG("error is : %d", err);
- return BLUETOOTH_ERROR_INTERNAL;
- }
+ g_variant_get(reply ,"(qq)", &def_tx_octets, &def_tx_time);
def_data_length->def_tx_octets = def_tx_octets;
def_data_length->def_tx_time = def_tx_time;
+ g_variant_unref(reply);
+
return BLUETOOTH_ERROR_NONE;
}
const unsigned int max_tx_Octets, const unsigned int max_tx_Time)
{
GError *error = NULL;
+ GDBusProxy *proxy;
+ GVariant *reply = NULL;
+ int ret = BLUETOOTH_ERROR_NONE;
guint16 txOctets = max_tx_Octets;
guint16 txTime = max_tx_Time;
char address[BT_ADDRESS_STRING_SIZE] = { 0 };
_bt_convert_addr_type_to_string(address, device_address->addr);
- device_path = _bt_get_device_object_path(address);
-
- BT_DBG("devic path is %s", device_path);
+ device_path = _bt_get_device_object_path(&address);
if (device_path == NULL) {
BT_DBG("Device path is null");
if (conn == NULL) {
BT_ERR("conn == NULL");
g_free(device_path);
- return BLUETOOTH_ERROR_INTERNAL;
+ return NULL;
}
device_proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE,
}
return BLUETOOTH_ERROR_NONE;
-}
\ No newline at end of file
+}