diff options
Diffstat (limited to 'synapse/federation/federation_base.py')
-rw-r--r-- | synapse/federation/federation_base.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/synapse/federation/federation_base.py b/synapse/federation/federation_base.py index 758512bd86..6593600247 100644 --- a/synapse/federation/federation_base.py +++ b/synapse/federation/federation_base.py @@ -26,7 +26,7 @@ from synapse.crypto.event_signing import check_event_content_hash from synapse.events import FrozenEvent from synapse.events.utils import prune_event from synapse.http.servlet import assert_params_in_dict -from synapse.types import get_domain_from_id +from synapse.types import get_domain_from_id, EventID from synapse.util import logcontext, unwrapFirstError logger = logging.getLogger(__name__) @@ -326,6 +326,14 @@ def event_from_pdu_json(pdu_json, outlier=False): elif depth > MAX_DEPTH: raise SynapseError(400, "Depth too large", Codes.BAD_JSON) + event_id = pdu_json["event_id"] + if event_id[0] != "$": + pdu_json["event_id"] = EventID( + event_id, + get_domain_from_id(pdu_json["sender"]), + ).to_string() + event_id = pdu_json["event_id"] + if "auth_events" in pdu_json: pdu_json["auth_events"] = [ (e, {}) if isinstance(e, six.string_types) else e |