01_SDK/nimble/host/nimble/nimble/host/src/ble_store.c
@@ -165,6 +165,20 @@
                      value_sec->irk_present ||
                      value_sec->csrk_present);
#if SMP_MULTI_ADDR_MODE_EN
    /* Add own address to database */
   ble_addr_t own_addr;
   own_addr.type = ble_hs_id_get_used_addr_type();
   rc = ble_hs_id_copy_addr(own_addr.type, own_addr.val, NULL);
   if(rc != 0){
      return -1;
   }
   struct ble_store_value_sec *value_sec_tmp = (struct ble_store_value_sec *)value_sec;
   value_sec_tmp->own_addr = own_addr;
#endif
    store_value = (void *)value_sec;
    rc = ble_store_write(obj_type, store_value);
    return rc;
@@ -270,6 +284,19 @@
    int rc;
    store_value = (void *)value;
#if SMP_MULTI_ADDR_MODE_EN
   ble_addr_t own_addr;
   own_addr.type = ble_hs_id_get_used_addr_type();
   rc = ble_hs_id_copy_addr(own_addr.type, own_addr.val, NULL);
   if(rc != 0){
      return -1;
   }
    store_value->cccd.own_addr = own_addr;
#endif
    rc = ble_store_write(BLE_STORE_OBJ_TYPE_CCCD, store_value);
    return rc;
}
@@ -292,6 +319,11 @@
    out_key->peer_addr = value->peer_addr;
    out_key->chr_val_handle = value->chr_val_handle;
    out_key->idx = 0;
#if SMP_MULTI_ADDR_MODE_EN
    out_key->own_addr = value->own_addr;
    out_key->is_own_addr_valid = 0;
#endif
}
void
@@ -304,6 +336,11 @@
    out_key->rand_num = value->rand_num;
    out_key->ediv_rand_present = 1;
    out_key->idx = 0;
#if SMP_MULTI_ADDR_MODE_EN
    out_key->own_addr = value->own_addr;
    out_key->is_own_addr_valid = 0;
#endif
}
void