From 99f3ea79a31f3b3baca3c125049434f8415acfdf Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 4 Nov 2021 10:33:58 +0100 Subject: [PATCH] le_device_db_tlv: don't increase num valid entries if entry is replaced --- CHANGELOG.md | 3 ++- src/ble/le_device_db_tlv.c | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c38928d9..4045bfb4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,7 +37,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - SM: Work around for unexpected Windows 10 disconnect for BR Secure Connections (SMP over BR timeout) - SM: support storing bonding information for devices with identical IRK but different public addresses - GAP: restart advertising when private address changes - +- le_device_db_tlv: keep number of devices reported by le_device_db_count if old entry is replaced + ### Changed - Drop iOS support - HCI: provide status instead of undocumented int error code and bool for API functions diff --git a/src/ble/le_device_db_tlv.c b/src/ble/le_device_db_tlv.c index ef793b5a1..85e11b164 100644 --- a/src/ble/le_device_db_tlv.c +++ b/src/ble/le_device_db_tlv.c @@ -203,6 +203,7 @@ int le_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk){ int index_for_lowest_seq_nr = -1; int index_for_addr = -1; int index_for_empty = -1; + bool new_entry = false; // find unused entry in the used list int i; @@ -234,6 +235,7 @@ int le_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk){ if (index_for_addr >= 0){ index_to_use = index_for_addr; } else if (index_for_empty >= 0){ + new_entry = true; index_to_use = index_for_empty; } else if (index_for_lowest_seq_nr >= 0){ index_to_use = index_for_lowest_seq_nr; @@ -268,8 +270,8 @@ int le_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk){ // set in entry_mape entry_map[index_to_use] = 1; - // keep track - don't increase if old entry found - if (index_for_addr < 0){ + // keep track - don't increase if old entry found or replaced + if (new_entry){ num_valid_entries++; }