From f4f3be8c30c0f0942f71866cdb9208b2a7c12cdd Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Fri, 10 May 2024 19:01:50 -0700 Subject: [PATCH] implement per-event state filtering for left rooms in /sync --- src/api/client_server/sync.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs index 5ff886fe..718519ca 100644 --- a/src/api/client_server/sync.rs +++ b/src/api/client_server/sync.rs @@ -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 {