From 1114b666700439530bc5515edf91ba97a1ffdc71 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Tue, 21 May 2024 15:58:03 -0700 Subject: [PATCH] implement filter limit for timeline events on /sync --- src/api/client_server/sync.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs index 2f2e8a5b..533eb3d1 100644 --- a/src/api/client_server/sync.rs +++ b/src/api/client_server/sync.rs @@ -173,6 +173,7 @@ pub(crate) async fn sync_events_route( lazy_load_enabled, lazy_load_send_redundant, full_state, + &filter, &compiled_filter, &mut device_list_updates, &mut left_encrypted_users, @@ -402,6 +403,7 @@ async fn load_joined_room( lazy_load_enabled: bool, lazy_load_send_redundant: bool, full_state: bool, + filter: &FilterDefinition, compiled_filter: &CompiledFilterDefinition<'_>, device_list_updates: &mut HashSet, left_encrypted_users: &mut HashSet, @@ -423,11 +425,13 @@ async fn load_joined_room( drop(insert_lock); } + let timeline_limit = + filter.room.timeline.limit.map_or(10, u64::from).min(100); let (timeline_pdus, oldest_timeline_event, limited) = load_timeline( sender_user, room_id, sincecount, - 10, + timeline_limit, Some(compiled_filter), )?;