le_device_db_tlv: return null addr and BD_ADDR_TYPE_UNKNOWN if device entry does not exist

This commit is contained in:
Matthias Ringwald 2019-02-06 11:11:33 +01:00
parent a9c8940efe
commit 1df781587f

View File

@ -274,14 +274,17 @@ int le_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk){
// get device information: addr type and address
void le_device_db_info(int index, int * addr_type, bd_addr_t addr, sm_key_t irk){
// set defaults
le_device_db_entry_t entry;
memset(&entry, 0, sizeof(le_device_db_entry_t));
entry.addr_type = BD_ADDR_TYPE_UNKNOWN;
// fetch entry
le_device_db_tlv_fetch(index, &entry);
le_device_db_entry_t entry;
int ok = le_device_db_tlv_fetch(index, &entry);
// set defaults if not found
if (!ok) {
memset(&entry, 0, sizeof(le_device_db_entry_t));
entry.addr_type = BD_ADDR_TYPE_UNKNOWN;
}
// setup return values
if (addr_type) *addr_type = entry.addr_type;
if (addr) memcpy(addr, entry.addr, 6);
if (irk) memcpy(irk, entry.irk, 16);