BT_EXPORT_API int bluetooth_oob_add_remote_data(
const bluetooth_device_address_t *remote_device_address,
+ bluetooth_bdaddr_type_e address_type,
bt_oob_data_t *remote_oob_data)
{
int result;
g_array_append_vals(in_param1, remote_device_address,
sizeof(bluetooth_device_address_t));
- g_array_append_vals(in_param2, remote_oob_data, sizeof(bt_oob_data_t));
+ g_array_append_vals(in_param2, &address_type, sizeof(unsigned short));
+
+ g_array_append_vals(in_param3, remote_oob_data, sizeof(bt_oob_data_t));
result = _bt_send_request(BT_BLUEZ_SERVICE, BT_OOB_ADD_REMOTE_DATA,
in_param1, in_param2, in_param3, in_param4, &out_param);
}
case BT_OOB_ADD_REMOTE_DATA: {
bluetooth_device_address_t address = { {0} };
- bt_oob_data_t local_oob_data;
+ unsigned short address_type;
+ bt_oob_data_t remote_oob_data;
__bt_service_get_parameters(in_param1,
&address, sizeof(bluetooth_device_address_t));
__bt_service_get_parameters(in_param2,
- &local_oob_data, sizeof(bt_oob_data_t));
+ &address_type, sizeof(unsigned short));
+ __bt_service_get_parameters(in_param3,
+ &remote_oob_data, sizeof(bt_oob_data_t));
- result = _bt_oob_add_remote_data(&address, &local_oob_data);
+ result = _bt_oob_add_remote_data(&address, address_type, &remote_oob_data);
break;
}
int _bt_oob_add_remote_data(
bluetooth_device_address_t *remote_device_address,
+ unsigned short address_type,
bt_oob_data_t *remote_oob_data)
{
BT_CHECK_PARAMETER(remote_device_address, return);
int _bt_oob_add_remote_data(
bluetooth_device_address_t *remote_device_address,
+ unsigned short address_type,
bt_oob_data_t *remote_oob_data);
int _bt_oob_remove_remote_data(
}
case BT_OOB_ADD_REMOTE_DATA: {
bluetooth_device_address_t address = { {0} };
+ unsigned short address_type;
bt_oob_data_t remote_oob_data;
__bt_service_get_parameters(in_param1,
&address, sizeof(bluetooth_device_address_t));
__bt_service_get_parameters(in_param2,
+ &address_type, sizeof(unsigned short));
+ __bt_service_get_parameters(in_param3,
&remote_oob_data, sizeof(bt_oob_data_t));
- result = _bt_oob_add_remote_data(&address, &remote_oob_data);
+ result = _bt_oob_add_remote_data(&address, address_type, &remote_oob_data);
break;
}
int _bt_oob_add_remote_data(
bluetooth_device_address_t *remote_device_address,
+ unsigned short address_type,
bt_oob_data_t *remote_oob_data)
{
int i;
return BLUETOOTH_ERROR_INTERNAL;
}
+ BT_DBG("address type: %d", address_type);
+
/* Remote address */
dev_addr = g_strdup(address);
/* Call AddRemoteData Method */
reply = g_dbus_proxy_call_sync(proxy, "AddRemoteData",
- g_variant_new("(s@ay@ay@ay@ay)", dev_addr,
+ g_variant_new("(sy@ay@ay@ay@ay)", dev_addr, address_type,
hash192, randomizer192, hash256, randomizer256),
G_DBUS_CALL_FLAGS_NONE, -1,
NULL, &err);
g_object_unref(proxy);
g_free(dev_addr);
+ BT_DBG("Add remote OOB data!!");
+
/* Check the reply */
if (reply == NULL) {
BT_ERR("AddRemoteData dBUS-RPC is failed");
}
g_variant_unref(reply);
+ BT_DBG("No error");
+
return BLUETOOTH_ERROR_NONE;
}
int _bt_oob_add_remote_data(
bluetooth_device_address_t *remote_device_address,
+ unsigned short address_type,
bt_oob_data_t *remote_oob_data);
int _bt_oob_remove_remote_data(
} bluetooth_device_address_type_t;
/**
+ * This is BD Address type defined in kernel BT header
+ */
+typedef enum {
+ BLUETOOTH_BDADDR_BREDR = 0x00,
+ BLUETOOTH_BDADDR_LE_PUBLIC = 0x01,
+ BLUETOOTH_BDADDR_LE_RANDOM = 0x02
+} bluetooth_bdaddr_type_e;
+
+/**
* This is Bluetooth version
*/
typedef struct {
/**
* @fn int bluetooth_oob_add_remote_data(
* const bluetooth_device_address_t *remote_device_address,
+ * bluetooth_bdaddr_type_e address_type,
* bt_oob_data_t *oob_data)
* @brief Add/updated the remote device Hash and Randmizer.
*
*
* @exception None
* @param[in] remote_device_address - Remote device address
+ * address_type - bdaddr type
* remote_oob_data - Ponter to Hash and Randomizer oob data structure
*
* @remark None
int bluetooth_oob_add_remote_data(
const bluetooth_device_address_t *remote_device_address,
+ bluetooth_bdaddr_type_e address_type,
bt_oob_data_t *remote_oob_data);
TC_PRT("randomizer_len: %d\n", g_local_oob_data.oob_data.randomizer_len);
if (bluetooth_oob_add_remote_data(&g_local_oob_data.address,
+ BLUETOOTH_BDADDR_BREDR,
&g_local_oob_data.oob_data))
TC_PRT("ERROR in bluetooth_oob_add_remote_data\n");
else