MYNEWT-754 BLE Host - Support deleting of CCCDs.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/c24413e1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/c24413e1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/c24413e1 Branch: refs/heads/master Commit: c24413e1106042015a693713305f046845169a2e Parents: fd6da96 Author: Christopher Collins <[email protected]> Authored: Thu May 11 17:02:28 2017 -0700 Committer: Christopher Collins <[email protected]> Committed: Thu May 11 18:04:41 2017 -0700 ---------------------------------------------------------------------- net/nimble/host/store/ram/src/ble_store_ram.c | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c24413e1/net/nimble/host/store/ram/src/ble_store_ram.c ---------------------------------------------------------------------- diff --git a/net/nimble/host/store/ram/src/ble_store_ram.c b/net/nimble/host/store/ram/src/ble_store_ram.c index 058f08a..e6b2950 100644 --- a/net/nimble/host/store/ram/src/ble_store_ram.c +++ b/net/nimble/host/store/ram/src/ble_store_ram.c @@ -322,6 +322,28 @@ ble_store_ram_find_cccd(const struct ble_store_key_cccd *key) } static int +ble_store_ram_delete_cccd(const struct ble_store_key_cccd *key_cccd) +{ + int idx; + int rc; + + idx = ble_store_ram_find_cccd(key_cccd); + if (idx == -1) { + return BLE_HS_ENOENT; + } + + rc = ble_store_ram_delete_obj(ble_store_ram_cccds, + sizeof *ble_store_ram_cccds, + idx, + &ble_store_ram_num_cccds); + if (rc != 0) { + return rc; + } + + return 0; +} + +static int ble_store_ram_read_cccd(const struct ble_store_key_cccd *key_cccd, struct ble_store_value_cccd *value_cccd) { @@ -450,8 +472,8 @@ ble_store_ram_delete(int obj_type, const union ble_store_key *key) return rc; case BLE_STORE_OBJ_TYPE_CCCD: - /* XXX: There is no good reason not to support this. */ - return BLE_HS_ENOTSUP; + rc = ble_store_ram_delete_cccd(&key->cccd); + return rc; default: return BLE_HS_ENOTSUP;
