diff options
-rw-r--r-- | synapse/api/events/__init__.py | 4 | ||||
-rw-r--r-- | synapse/federation/replication.py | 3 | ||||
-rw-r--r-- | tests/federation/test_federation.py | 3 | ||||
-rw-r--r-- | tests/handlers/test_federation.py | 3 |
4 files changed, 11 insertions, 2 deletions
diff --git a/synapse/api/events/__init__.py b/synapse/api/events/__init__.py index 0019789dd1..a01c4a1351 100644 --- a/synapse/api/events/__init__.py +++ b/synapse/api/events/__init__.py @@ -119,7 +119,7 @@ class SynapseEvent(JsonEncodedObject): def get_pdu_json(self, time_now=None): pdu_json = self.get_full_dict() - pdu_json.pop("destination", None) + pdu_json.pop("destinations", None) pdu_json.pop("outlier", None) pdu_json.pop("replaces_state", None) pdu_json.pop("redacted", None) @@ -132,6 +132,8 @@ class SynapseEvent(JsonEncodedObject): age = time_now - pdu_json["age_ts"] pdu_json.setdefault("unsigned", {})["age"] = int(age) del pdu_json["age_ts"] + user_id = pdu_json.pop("user_id") + pdu_json["sender"] = user_id return pdu_json diff --git a/synapse/federation/replication.py b/synapse/federation/replication.py index 2ed303e12d..65a53ae17c 100644 --- a/synapse/federation/replication.py +++ b/synapse/federation/replication.py @@ -582,6 +582,9 @@ class ReplicationLayer(object): #TODO: Check we have all the PDU keys here pdu_json.setdefault("hashes", {}) pdu_json.setdefault("signatures", {}) + sender = pdu_json.pop("sender", None) + if sender is not None: + pdu_json["user_id"] = sender state_hash = pdu_json.get("unsigned", {}).pop("state_hash", None) if state_hash is not None: pdu_json["state_hash"] = state_hash diff --git a/tests/federation/test_federation.py b/tests/federation/test_federation.py index efac4075dc..73dd289276 100644 --- a/tests/federation/test_federation.py +++ b/tests/federation/test_federation.py @@ -100,6 +100,7 @@ class FederationTestCase(unittest.TestCase): make_pdu( event_id="the-pdu-id", origin="red", + user_id="@a:red", room_id="my-context", type="m.topic", origin_server_ts=123456789000, @@ -145,6 +146,7 @@ class FederationTestCase(unittest.TestCase): make_pdu( event_id="abc123def456", origin="red", + user_id="@a:red", room_id="my-context", type="m.text", origin_server_ts=123456789001, @@ -172,6 +174,7 @@ class FederationTestCase(unittest.TestCase): pdu = SynapseEvent( event_id="abc123def456", origin="red", + user_id="@a:red", room_id="my-context", type="m.text", origin_server_ts=123456789001, diff --git a/tests/handlers/test_federation.py b/tests/handlers/test_federation.py index e19b073817..3487a090e9 100644 --- a/tests/handlers/test_federation.py +++ b/tests/handlers/test_federation.py @@ -81,8 +81,9 @@ class FederationTestCase(unittest.TestCase): content={"msgtype": u"fooo"}, origin_server_ts=0, event_id="$a:b", + user_id="@a:b", origin="b", - hashes={"sha256":"PvbCLWrTBxnBsSO7/cJ76072ySTCgI/XGadESRAe02M"}, + hashes={"sha256":"AcLrgtUIqqwaGoHhrEvYG1YLDIsVPYJdSRGhkp3jJp8"}, ) self.datastore.persist_event.return_value = defer.succeed(None) |