Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Ease searching for M_TOO_LARGE-related error codes #10750

Merged
merged 4 commits into from
Sep 6, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/10750.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Refactor event size checking code to simplify searching the codebase for the origins of certain error strings that are occasionally emitted.
15 changes: 6 additions & 9 deletions synapse/event_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,21 +216,18 @@ def check(


def _check_size_limits(event: EventBase) -> None:
def too_big(field):
raise EventSizeError("%s too large" % (field,))

if len(event.user_id) > 255:
too_big("user_id")
EventSizeError("user_id too large")
if len(event.room_id) > 255:
too_big("room_id")
EventSizeError("room_id too large")
if event.is_state() and len(event.state_key) > 255:
too_big("state_key")
EventSizeError("state_key too large")
if len(event.type) > 255:
too_big("type")
EventSizeError("type too large")
if len(event.event_id) > 255:
too_big("event_id")
EventSizeError("event_id too large")
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved
if len(encode_canonical_json(event.get_pdu_json())) > MAX_PDU_SIZE:
too_big("event")
EventSizeError("event too large")


def _can_federate(event: EventBase, auth_events: StateMap[EventBase]) -> bool:
Expand Down