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

Commit 2bfef33c authored by Chris Manton's avatar Chris Manton
Browse files

legacy: Add address type to bond API

Bug: 203417776
Tag: #refactor
Test: gd/cert/run
Change-Id: I81a48f1d2bb3d8b59eaa0640855d077fc095db1a
parent 6e8b266f
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -707,6 +707,7 @@ void BTM_PINCodeReply(const RawAddress& bd_addr, tBTM_STATUS res,
 *  Note: After 2.1 parameters are not used and preserved here not to change API
 ******************************************************************************/
tBTM_STATUS btm_sec_bond_by_transport(const RawAddress& bd_addr,
                                      tBLE_ADDR_TYPE addr_type,
                                      tBT_TRANSPORT transport, uint8_t pin_len,
                                      uint8_t* p_pin) {
  tBTM_SEC_DEV_REC* p_dev_rec;
@@ -771,7 +772,7 @@ tBTM_STATUS btm_sec_bond_by_transport(const RawAddress& bd_addr,
    btm_ble_init_pseudo_addr(p_dev_rec, bd_addr);
    p_dev_rec->sec_flags &= ~BTM_SEC_LE_MASK;

    if (SMP_Pair(bd_addr) == SMP_STARTED) {
    if (SMP_Pair(bd_addr, addr_type) == SMP_STARTED) {
      btm_cb.pairing_flags |= BTM_PAIR_FLAGS_LE_ACTIVE;
      p_dev_rec->sec_state = BTM_SEC_STATE_AUTHENTICATING;
      btm_sec_change_pairing_state(BTM_PAIR_STATE_WAIT_AUTH_COMPLETE);
@@ -897,7 +898,8 @@ tBTM_STATUS BTM_SecBond(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type,
       (dev_type & BT_DEVICE_TYPE_BREDR) == 0)) {
    return BTM_ILLEGAL_ACTION;
  }
  return btm_sec_bond_by_transport(bd_addr, transport, pin_len, p_pin);
  return btm_sec_bond_by_transport(bd_addr, addr_type, transport, pin_len,
                                   p_pin);
}

/*******************************************************************************
+1 −0
Original line number Diff line number Diff line
@@ -202,6 +202,7 @@ void BTM_PINCodeReply(const RawAddress& bd_addr, tBTM_STATUS res,
 *  Note: After 2.1 parameters are not used and preserved here not to change API
 ******************************************************************************/
tBTM_STATUS btm_sec_bond_by_transport(const RawAddress& bd_addr,
                                      tBLE_ADDR_TYPE addr_type,
                                      tBT_TRANSPORT transport, uint8_t pin_len,
                                      uint8_t* p_pin);

+1 −0
Original line number Diff line number Diff line
@@ -239,6 +239,7 @@ struct tBTM_SEC_DEV_REC {
                                            const Octet16& link_key,
                                            uint8_t key_type);
  friend tBTM_STATUS btm_sec_bond_by_transport(const RawAddress& bd_addr,
                                               tBLE_ADDR_TYPE addr_type,
                                               tBT_TRANSPORT transport,
                                               uint8_t pin_len, uint8_t* p_pin);
  uint8_t pin_code_length; /* Length of the pin_code used for paring */
+2 −0
Original line number Diff line number Diff line
@@ -80,6 +80,8 @@ extern bool SMP_Register(tSMP_CALLBACK* p_cback);
 *
 ******************************************************************************/
extern tSMP_STATUS SMP_Pair(const RawAddress& bd_addr);
extern tSMP_STATUS SMP_Pair(const RawAddress& bd_addr,
                            tBLE_ADDR_TYPE addr_type);

/*******************************************************************************
 *
+9 −1
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ bool SMP_Register(tSMP_CALLBACK* p_cback) {
 * Returns          None
 *
 ******************************************************************************/
tSMP_STATUS SMP_Pair(const RawAddress& bd_addr) {
tSMP_STATUS SMP_Pair(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type) {
  LOG_ASSERT(!bluetooth::shim::is_gd_shim_enabled())
      << "Legacy SMP API should not be invoked when GD Security is used";
  tSMP_CB* p_cb = &smp_cb;
@@ -157,6 +157,10 @@ tSMP_STATUS SMP_Pair(const RawAddress& bd_addr) {
    p_cb->flags = SMP_PAIR_FLAGS_WE_STARTED_DD;
    p_cb->pairing_bda = bd_addr;

    p_cb->pairing_ble_bd_addr = {
        .type = addr_type,
        .bda = bd_addr,
    };
    if (!L2CA_ConnectFixedChnl(L2CAP_SMP_CID, bd_addr)) {
      tSMP_INT_DATA smp_int_data;
      smp_int_data.status = SMP_PAIR_INTERNAL_ERR;
@@ -170,6 +174,10 @@ tSMP_STATUS SMP_Pair(const RawAddress& bd_addr) {
  }
}

tSMP_STATUS SMP_Pair(const RawAddress& bd_addr) {
  return SMP_Pair(bd_addr, BLE_ADDR_PUBLIC);
}

/*******************************************************************************
 *
 * Function         SMP_BR_PairWith
Loading