Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8653b175 authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Pass address type into shim::BTM_SecBond for LE devices

Previously stack used to store address type in security record database.
New stack will receive address type as one of the paramters to start the
bond.

Bug: 147086339
Change-Id: Ide684b8957516efc3f7cb4417ded61f27290ff81
parent 11a72fdb
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -813,11 +813,12 @@ void bta_dm_remove_all_acl(const tBTA_DM_LINK_TYPE link_type) {
}

/** Bonds with peer device */
void bta_dm_bond(const RawAddress& bd_addr, tBTA_TRANSPORT transport) {
void bta_dm_bond(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type,
                 tBTA_TRANSPORT transport) {
  tBTA_DM_SEC sec_event;
  char* p_name;

  tBTM_STATUS status = BTM_SecBond(bd_addr, transport, 0, NULL, 0);
  tBTM_STATUS status = BTM_SecBond(bd_addr, addr_type, transport, 0, NULL, 0);

  if (bta_dm_cb.p_sec_cback && (status != BTM_CMD_STARTED)) {
    memset(&sec_event, 0, sizeof(tBTA_DM_SEC));
+4 −2
Original line number Diff line number Diff line
@@ -210,8 +210,10 @@ void BTA_DmDiscoverUUID(const RawAddress& bd_addr, const Uuid& uuid,
}

/** This function initiates a bonding procedure with a peer device */
void BTA_DmBond(const RawAddress& bd_addr, tBTA_TRANSPORT transport) {
  do_in_main_thread(FROM_HERE, base::Bind(bta_dm_bond, bd_addr, transport));
void BTA_DmBond(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type,
                tBTA_TRANSPORT transport) {
  do_in_main_thread(FROM_HERE,
                    base::Bind(bta_dm_bond, bd_addr, addr_type, transport));
}

/** This function cancels the bonding procedure with a peer device
+1 −1
Original line number Diff line number Diff line
@@ -480,7 +480,7 @@ extern void bta_dm_set_dev_name(const std::vector<uint8_t>&);
extern void bta_dm_set_visibility(tBTA_DM_DISC, tBTA_DM_CONN, uint8_t, uint8_t);
extern void bta_dm_set_scan_config(tBTA_DM_MSG* p_data);
extern void bta_dm_vendor_spec_command(tBTA_DM_MSG* p_data);
extern void bta_dm_bond(const RawAddress&, tBTA_TRANSPORT);
extern void bta_dm_bond(const RawAddress&, tBLE_ADDR_TYPE, tBTA_TRANSPORT);
extern void bta_dm_bond_cancel(const RawAddress&);
extern void bta_dm_pin_reply(std::unique_ptr<tBTA_DM_API_PIN_REPLY> msg);
extern void bta_dm_add_device(std::unique_ptr<tBTA_DM_API_ADD_DEVICE> msg);
+2 −1
Original line number Diff line number Diff line
@@ -1196,7 +1196,8 @@ tBTA_STATUS BTA_DmGetCachedRemoteName(const RawAddress& remote_device,
 * Returns          void
 *
 ******************************************************************************/
extern void BTA_DmBond(const RawAddress& bd_addr, tBTA_TRANSPORT transport);
extern void BTA_DmBond(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type,
                       tBTA_TRANSPORT transport);

/*******************************************************************************
 *
+1 −1
Original line number Diff line number Diff line
@@ -697,7 +697,7 @@ static void btif_dm_cb_create_bond(const RawAddress& bd_addr,
    if (status != BT_STATUS_SUCCESS)
      bond_state_changed(status, bd_addr, BT_BOND_STATE_NONE);
  } else {
    BTA_DmBond(bd_addr, transport);
    BTA_DmBond(bd_addr, addr_type, transport);
  }
  /*  Track  originator of bond creation  */
  pairing_cb.is_local_initiated = true;
Loading