diff --git a/veilid-core/src/storage_manager/storage_manager_inner.rs b/veilid-core/src/storage_manager/storage_manager_inner.rs index 0c111ed3..2c4692c4 100644 --- a/veilid-core/src/storage_manager/storage_manager_inner.rs +++ b/veilid-core/src/storage_manager/storage_manager_inner.rs @@ -354,7 +354,12 @@ impl StorageManagerInner { // Write open record self.opened_records - .insert(key, OpenedRecord::new(writer, safety_selection)); + .entry(key) + .and_modify(|e| { + e.set_writer(writer); + e.set_safety_selection(safety_selection); + }) + .or_insert_with(|| OpenedRecord::new(writer, safety_selection)); // Make DHT Record Descriptor to return let descriptor = DHTRecordDescriptor::new(key, owner, owner_secret, schema); diff --git a/veilid-core/src/storage_manager/types/opened_record.rs b/veilid-core/src/storage_manager/types/opened_record.rs index edd4bad2..cbdd1c16 100644 --- a/veilid-core/src/storage_manager/types/opened_record.rs +++ b/veilid-core/src/storage_manager/types/opened_record.rs @@ -42,16 +42,16 @@ impl OpenedRecord { pub fn writer(&self) -> Option<&KeyPair> { self.writer.as_ref() } - // pub fn set_writer(&mut self, writer: Option) { - // self.writer = writer; - // } + pub fn set_writer(&mut self, writer: Option) { + self.writer = writer; + } pub fn safety_selection(&self) -> SafetySelection { self.safety_selection } - // pub fn set_safety_selection(&mut self, safety_selection: SafetySelection) { - // self.safety_selection = safety_selection; - // } + pub fn set_safety_selection(&mut self, safety_selection: SafetySelection) { + self.safety_selection = safety_selection; + } pub fn set_active_watch(&mut self, active_watch: ActiveWatch) { self.active_watch = Some(active_watch);