aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-07 22:35:09 +0100
committertv <tv@krebsco.de>2026-11-07 22:35:09 +0100
commit13cba9b0be736433d8ac44c0ef046cb001918a07 (patch)
tree09272f50d6d27cab6200a33fcdc7abb9e552e46c /src/swarm
parentec70060ae5fa665953741da921e28031b56bc5e0 (diff)
store: keys_at tells no map from an empty one
registry::exists counted any value at _continuum/users as a registry; keys_at answers None where there is no map, and its users (records, members, forget records, remakes) say what they make of it. Auth plan M1 (fix).
Diffstat (limited to 'src/swarm')
-rw-r--r--src/swarm/members.rs5
-rw-r--r--src/swarm/peer/forget.rs5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/swarm/members.rs b/src/swarm/members.rs
index 1cb4062..cbd970d 100644
--- a/src/swarm/members.rs
+++ b/src/swarm/members.rs
@@ -40,7 +40,10 @@ pub(crate) fn member_path(pk: &str) -> Vec<String> {
/// Public keys of all registered members, sorted.
pub(crate) fn members(doc: &impl ReadDoc) -> Vec<String> {
- let mut members = store::keys_at(doc, &members_dir()).unwrap_or_default();
+ let mut members = store::keys_at(doc, &members_dir())
+ .ok()
+ .flatten()
+ .unwrap_or_default();
members.sort();
members
}
diff --git a/src/swarm/peer/forget.rs b/src/swarm/peer/forget.rs
index ce064a2..a1676b5 100644
--- a/src/swarm/peer/forget.rs
+++ b/src/swarm/peer/forget.rs
@@ -32,7 +32,10 @@ pub(crate) fn affects_forget_records(path: &[String]) -> bool {
}
fn forgotten_peers(doc: &Document) -> Vec<String> {
- store::keys_at(doc, &forgotten_dir()).unwrap_or_default()
+ store::keys_at(doc, &forgotten_dir())
+ .ok()
+ .flatten()
+ .unwrap_or_default()
}
/// The forget records this node acted on: peer → the record as it read then.