Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Fast-path filtering out all rooms.
Browse files Browse the repository at this point in the history
  • Loading branch information
clokep committed Jan 6, 2023
1 parent b0480c6 commit 59e40ca
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
3 changes: 3 additions & 0 deletions synapse/api/filtering.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,9 @@ async def filter_room_account_data(
await self._room_filter.filter(events)
)

def blocks_all_rooms(self) -> bool:
return self._room_filter.filters_all_rooms()

def blocks_all_presence(self) -> bool:
return (
self._presence_filter.filters_all_types()
Expand Down
5 changes: 5 additions & 0 deletions synapse/handlers/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -1792,6 +1792,11 @@ async def _generate_sync_entry_for_rooms(
- newly_left_rooms
- newly_left_users
"""

# If the request doesn't care about rooms then nothing to do!
if sync_result_builder.sync_config.filter_collection.blocks_all_rooms():
return (set(), set(), set(), set())

since_token = sync_result_builder.since_token

# 1. Start by fetching all ephemeral events in rooms we've joined (if required).
Expand Down

0 comments on commit 59e40ca

Please sign in to comment.