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

Commit 7f4c3a6

Browse files
committed
Remove m.historical messages from /sync
1 parent bcc6943 commit 7f4c3a6

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

synapse/handlers/sync.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@
4242
from synapse.util.caches.lrucache import LruCache
4343
from synapse.util.caches.response_cache import ResponseCache
4444
from synapse.util.metrics import Measure, measure_func
45-
from synapse.visibility import filter_events_for_client
45+
from synapse.visibility import (
46+
filter_events_for_client,
47+
filter_historical_events
48+
)
4649

4750
if TYPE_CHECKING:
4851
from synapse.server import HomeServer
@@ -423,6 +426,7 @@ async def _load_filtered_recents(
423426
potential_recents: Optional[List[EventBase]] = None,
424427
newly_joined_room: bool = False,
425428
) -> TimelineBatch:
429+
logger.info("_load_filtered_recents")
426430
with Measure(self.clock, "load_filtered_recents"):
427431
timeline_limit = sync_config.filter_collection.timeline_limit()
428432
block_all_timeline = (
@@ -462,6 +466,8 @@ async def _load_filtered_recents(
462466
else:
463467
recents = []
464468

469+
logger.info("recents1 %s", recents)
470+
465471
if not limited or block_all_timeline:
466472
prev_batch_token = now_token
467473
if recents:
@@ -534,6 +540,10 @@ async def _load_filtered_recents(
534540

535541
prev_batch_token = now_token.copy_and_replace("room_key", room_key)
536542

543+
# `m.historical` events should not come down /sync
544+
recents = await filter_historical_events(recents)
545+
546+
logger.info("recents2 %s", recents)
537547
return TimelineBatch(
538548
events=recents,
539549
prev_batch=prev_batch_token,

synapse/rest/client/v2_alpha/sync.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ def __init__(self, hs):
8686
self._event_serializer = hs.get_event_client_serializer()
8787

8888
async def on_GET(self, request):
89+
logger.info("/sync on_GET")
8990
if b"from" in request.args:
9091
# /events used to use 'from', but /sync uses 'since'.
9192
# Lets be helpful and whine if we see a 'from'.
@@ -184,6 +185,7 @@ async def on_GET(self, request):
184185
logger.info("Client has disconnected; not serializing response.")
185186
return 200, {}
186187

188+
#logger.info("sync response %s", sync_result)
187189
time_now = self.clock.time_msec()
188190
response_content = await self.encode_response(
189191
time_now, sync_result, requester.access_token_id, filter_collection

synapse/visibility.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,17 @@
4545
Membership.BAN,
4646
)
4747

48+
async def filter_historical_events(
49+
events
50+
):
51+
logger.info("filter_historical_events %s", ' '.join(map(str, events)))
52+
filtered_events = [e for e in events if not e.content.get("m.historical", None)]
53+
54+
# remove the None entries
55+
filtered_events = filter(operator.truth, filtered_events)
56+
57+
# we turn it into a list before returning it.
58+
return list(filtered_events)
4859

4960
async def filter_events_for_client(
5061
storage: Storage,

0 commit comments

Comments
 (0)