diff options
author | Erik Johnston <erikj@element.io> | 2024-07-29 22:45:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-29 22:45:48 +0100 |
commit | be4a16ff445c9dfba04aeaed695afb3a56e204f7 (patch) | |
tree | 62de0ad9059e727a072ea06743afbf21765991ae /synapse/rest | |
parent | Refactor Sliding Sync tests to better utilize the `SlidingSyncBase.do_sync(..... (diff) | |
download | synapse-be4a16ff445c9dfba04aeaed695afb3a56e204f7.tar.xz |
Sliding Sync: Track whether we have sent rooms down to clients (#17447)
The basic idea is that we introduce a new token for a sliding sync connection, which stores the mapping of room to room "status" (i.e. have we sent the room down?). This token allows us to handle duplicate requests properly. In future it can be used to store more "per-connection" information safely. In future this should be migrated into the DB, so its important that we try to reduce the number of syncs where we need to update the per-connection information. In this PoC this only happens when we: a) send down a set of room for the first time, or b) we have previously sent down a room and there are updates but we are not sending the room down the sync (due to not falling in a list range) Co-authored-by: Eric Eastwood <eric.eastwood@beta.gouv.fr>
Diffstat (limited to 'synapse/rest')
-rw-r--r-- | synapse/rest/client/sync.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/synapse/rest/client/sync.py b/synapse/rest/client/sync.py index 7cf1f56435..bf3ac8d483 100644 --- a/synapse/rest/client/sync.py +++ b/synapse/rest/client/sync.py @@ -881,7 +881,6 @@ class SlidingSyncRestServlet(RestServlet): ) user = requester.user - device_id = requester.device_id timeout = parse_integer(request, "timeout", default=0) # Position in the stream @@ -902,11 +901,12 @@ class SlidingSyncRestServlet(RestServlet): sync_config = SlidingSyncConfig( user=user, - device_id=device_id, + requester=requester, # FIXME: Currently, we're just manually copying the fields from the - # `SlidingSyncBody` into the config. How can we gurantee into the future + # `SlidingSyncBody` into the config. How can we guarantee into the future # that we don't forget any? I would like something more structured like # `copy_attributes(from=body, to=config)` + conn_id=body.conn_id, lists=body.lists, room_subscriptions=body.room_subscriptions, extensions=body.extensions, |