implement per-event state filtering for left rooms in /sync

This commit is contained in:
Benjamin Lee 2024-05-10 19:01:50 -07:00
parent b85110a292
commit f4f3be8c30
No known key found for this signature in database
GPG key ID: FB9624E2885D55A4

View file

@ -1097,7 +1097,11 @@ async fn handle_left_room(
};
State {
events: vec![event.to_sync_state_event()],
events: if filter.room.state.pdu_event_allowed(&event) {
vec![event.to_sync_state_event()]
} else {
vec![]
},
}
} else {
let mut left_state_events = Vec::new();
@ -1164,7 +1168,9 @@ async fn handle_left_room(
continue;
};
left_state_events.push(pdu.to_sync_state_event());
if filter.room.state.pdu_event_allowed(&pdu) {
left_state_events.push(pdu.to_sync_state_event());
}
i += 1;
if i % 100 == 0 {