summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2015-08-21 09:36:07 +0100
committerErik Johnston <erik@matrix.org>2015-08-21 09:36:07 +0100
commit1f7642efa9f7165706593d745aab467b7fdddd67 (patch)
treeea6656514641ee822fc74cef3e542ad8df69bdc1 /synapse
parentAdd missing param in store.get_state_groups invocation (diff)
downloadsynapse-1f7642efa9f7165706593d745aab467b7fdddd67.tar.xz
Fix bug where we didn't correctly serialize the redacted_because key over federation
Diffstat (limited to 'synapse')
-rw-r--r--synapse/events/__init__.py5
-rw-r--r--synapse/storage/events.py2
2 files changed, 6 insertions, 1 deletions
diff --git a/synapse/events/__init__.py b/synapse/events/__init__.py

index 39ce4f7c42..3fb4b5e791 100644 --- a/synapse/events/__init__.py +++ b/synapse/events/__init__.py
@@ -90,7 +90,7 @@ class EventBase(object): d = dict(self._event_dict) d.update({ "signatures": self.signatures, - "unsigned": self.unsigned, + "unsigned": dict(self.unsigned), }) return d @@ -109,6 +109,9 @@ class EventBase(object): pdu_json.setdefault("unsigned", {})["age"] = int(age) del pdu_json["unsigned"]["age_ts"] + # This may be a frozen event + pdu_json["unsigned"].pop("redacted_because", None) + return pdu_json def __set__(self, instance, value): diff --git a/synapse/storage/events.py b/synapse/storage/events.py
index 5b64918024..e3eabab13d 100644 --- a/synapse/storage/events.py +++ b/synapse/storage/events.py
@@ -811,6 +811,8 @@ class EventsStore(SQLBaseStore): ) if because: + # It's fine to do add the event directly, since get_pdu_json + # will serialise this field correctly ev.unsigned["redacted_because"] = because if get_prev_content and "replaces_state" in ev.unsigned: