1 files changed, 24 insertions, 12 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index bf0106c6e7..0385c04bc2 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -1,16 +1,22 @@
-# Copyright 2015-2021 The Matrix.org Foundation C.I.C.
#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# This file is licensed under the Affero General Public License (AGPL) version 3.
+#
+# Copyright (C) 2023 New Vector, Ltd
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# See the GNU Affero General Public License for more details:
+# <https://www.gnu.org/licenses/agpl-3.0.html>.
+#
+# Originally licensed under the Apache License, Version 2.0:
+# <http://www.apache.org/licenses/LICENSE-2.0>.
+#
+# [This file includes modifications made by New Vector Limited]
#
-# http://www.apache.org/licenses/LICENSE-2.0
#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
import itertools
import logging
from typing import (
@@ -595,7 +601,10 @@ class SyncHandler:
if not limited or block_all_timeline:
prev_batch_token = upto_token
if recents:
- room_key = recents[0].internal_metadata.before
+ assert recents[0].internal_metadata.stream_ordering
+ room_key = RoomStreamToken(
+ stream=recents[0].internal_metadata.stream_ordering - 1
+ )
prev_batch_token = upto_token.copy_and_replace(
StreamKeyType.ROOM, room_key
)
@@ -683,7 +692,10 @@ class SyncHandler:
if len(recents) > timeline_limit:
limited = True
recents = recents[-timeline_limit:]
- room_key = recents[0].internal_metadata.before
+ assert recents[0].internal_metadata.stream_ordering
+ room_key = RoomStreamToken(
+ stream=recents[0].internal_metadata.stream_ordering - 1
+ )
prev_batch_token = upto_token.copy_and_replace(StreamKeyType.ROOM, room_key)
|