Bluetooth: Move New LTK store hint evaluation into mgmt_new_ltk
It's simpler (one less if-statement) to just evaluate the appropriate value for store_hint in the mgmt_new_ltk function than to pass a boolean parameter to the function. Furthermore, this simplifies moving the mgmt event emission out from hci_add_ltk in subsequent patches. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Родитель
ca9142b882
Коммит
ba74b666b5
|
@ -1211,7 +1211,7 @@ void mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
|
|||
void mgmt_discovering(struct hci_dev *hdev, u8 discovering);
|
||||
int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
|
||||
int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
|
||||
void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, u8 persistent);
|
||||
void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key);
|
||||
void mgmt_reenable_advertising(struct hci_dev *hdev);
|
||||
void mgmt_smp_complete(struct hci_conn *conn, bool complete);
|
||||
|
||||
|
|
|
@ -2768,7 +2768,6 @@ struct smp_ltk *hci_add_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr,
|
|||
{
|
||||
struct smp_ltk *key, *old_key;
|
||||
bool master = ltk_type_master(type);
|
||||
u8 persistent;
|
||||
|
||||
old_key = hci_find_ltk_by_addr(hdev, bdaddr, addr_type, master);
|
||||
if (old_key)
|
||||
|
@ -2792,13 +2791,8 @@ struct smp_ltk *hci_add_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr,
|
|||
if (!new_key)
|
||||
return key;
|
||||
|
||||
if (addr_type == ADDR_LE_DEV_RANDOM && (bdaddr->b[5] & 0xc0) != 0xc0)
|
||||
persistent = 0;
|
||||
else
|
||||
persistent = 1;
|
||||
|
||||
if (type == HCI_SMP_LTK || type == HCI_SMP_LTK_SLAVE)
|
||||
mgmt_new_ltk(hdev, key, persistent);
|
||||
mgmt_new_ltk(hdev, key);
|
||||
|
||||
return key;
|
||||
}
|
||||
|
|
|
@ -4765,13 +4765,18 @@ void mgmt_new_link_key(struct hci_dev *hdev, struct link_key *key,
|
|||
mgmt_event(MGMT_EV_NEW_LINK_KEY, hdev, &ev, sizeof(ev), NULL);
|
||||
}
|
||||
|
||||
void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, u8 persistent)
|
||||
void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key)
|
||||
{
|
||||
struct mgmt_ev_new_long_term_key ev;
|
||||
|
||||
memset(&ev, 0, sizeof(ev));
|
||||
|
||||
ev.store_hint = persistent;
|
||||
if (key->bdaddr_type == ADDR_LE_DEV_RANDOM &&
|
||||
(key->bdaddr.b[5] & 0xc0) != 0xc0)
|
||||
ev.store_hint = 0x00;
|
||||
else
|
||||
ev.store_hint = 0x01;
|
||||
|
||||
bacpy(&ev.key.addr.bdaddr, &key->bdaddr);
|
||||
ev.key.addr.type = link_to_bdaddr(LE_LINK, key->bdaddr_type);
|
||||
ev.key.type = key->authenticated;
|
||||
|
|
Загрузка…
Ссылка в новой задаче