mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
fix(sync): handle wildcard state keys in sliding sync required_state
This commit is contained in:
@@ -685,8 +685,15 @@ async fn collect_required_state(
|
|||||||
required_state_request: &BTreeSet<TypeStateKey>,
|
required_state_request: &BTreeSet<TypeStateKey>,
|
||||||
) -> Vec<Raw<AnySyncStateEvent>> {
|
) -> Vec<Raw<AnySyncStateEvent>> {
|
||||||
let mut required_state = Vec::new();
|
let mut required_state = Vec::new();
|
||||||
|
let mut wildcard_types: BTreeSet<&StateEventType> = BTreeSet::new();
|
||||||
|
|
||||||
for (event_type, state_key) in required_state_request {
|
for (event_type, state_key) in required_state_request {
|
||||||
|
if wildcard_types.contains(event_type) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if state_key.as_str() == "*" {
|
if state_key.as_str() == "*" {
|
||||||
|
wildcard_types.insert(event_type);
|
||||||
if let Ok(keys) = services
|
if let Ok(keys) = services
|
||||||
.rooms
|
.rooms
|
||||||
.state_accessor
|
.state_accessor
|
||||||
@@ -703,7 +710,6 @@ async fn collect_required_state(
|
|||||||
required_state.push(Event::into_format(event));
|
required_state.push(Event::into_format(event));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
} else if let Ok(event) = services
|
} else if let Ok(event) = services
|
||||||
.rooms
|
.rooms
|
||||||
|
|||||||
Reference in New Issue
Block a user