mirror of
https://mau.dev/maunium/synapse.git
synced 2024-11-02 20:59:12 +01:00
Don't fiddle with results returned by event sources
Overwriting hashes returned by other methods is poor form. Fixes: SYN-516
This commit is contained in:
parent
9107ed23b7
commit
c7db2068c8
1 changed files with 12 additions and 4 deletions
|
@ -311,8 +311,13 @@ class SyncHandler(BaseHandler):
|
|||
ephemeral_by_room = {}
|
||||
|
||||
for event in typing:
|
||||
room_id = event.pop("room_id")
|
||||
ephemeral_by_room.setdefault(room_id, []).append(event)
|
||||
# we want to exclude the room_id from the event, but modifying the
|
||||
# result returned by the event source is poor form (it might cache
|
||||
# the object)
|
||||
room_id = event["room_id"]
|
||||
event_copy = {k: v for (k, v) in event.iteritems()
|
||||
if k != "room_id"}
|
||||
ephemeral_by_room.setdefault(room_id, []).append(event_copy)
|
||||
|
||||
receipt_key = since_token.receipt_key if since_token else "0"
|
||||
|
||||
|
@ -328,8 +333,11 @@ class SyncHandler(BaseHandler):
|
|||
now_token = now_token.copy_and_replace("receipt_key", receipt_key)
|
||||
|
||||
for event in receipts:
|
||||
room_id = event.pop("room_id")
|
||||
ephemeral_by_room.setdefault(room_id, []).append(event)
|
||||
room_id = event["room_id"]
|
||||
# exclude room id, as above
|
||||
event_copy = {k: v for (k, v) in event.iteritems()
|
||||
if k != "room_id"}
|
||||
ephemeral_by_room.setdefault(room_id, []).append(event_copy)
|
||||
|
||||
defer.returnValue((now_token, ephemeral_by_room))
|
||||
|
||||
|
|
Loading…
Reference in a new issue