diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2021-02-19 13:20:34 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-19 13:20:34 -0500 |
commit | fc8b3d88097d2c985e8eae9779cdb4b23e1a8ef6 (patch) | |
tree | f92ea6fbe63e71f2fc4e01abbb814f129be333b0 /synapse/api | |
parent | Regenerate exact thumbnails if missing (#9438) (diff) | |
download | synapse-fc8b3d88097d2c985e8eae9779cdb4b23e1a8ef6.tar.xz |
Ratelimit cross-user key sharing requests. (#8957)
Diffstat (limited to 'synapse/api')
-rw-r--r-- | synapse/api/constants.py | 7 | ||||
-rw-r--r-- | synapse/api/ratelimiting.py | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/synapse/api/constants.py b/synapse/api/constants.py index af8d59cf87..691f8f9adf 100644 --- a/synapse/api/constants.py +++ b/synapse/api/constants.py @@ -98,11 +98,14 @@ class EventTypes: Retention = "m.room.retention" - Presence = "m.presence" - Dummy = "org.matrix.dummy_event" +class EduTypes: + Presence = "m.presence" + RoomKeyRequest = "m.room_key_request" + + class RejectedReason: AUTH_ERROR = "auth_error" diff --git a/synapse/api/ratelimiting.py b/synapse/api/ratelimiting.py index 5d9d5a228f..c3f07bc1a3 100644 --- a/synapse/api/ratelimiting.py +++ b/synapse/api/ratelimiting.py @@ -14,7 +14,7 @@ # limitations under the License. from collections import OrderedDict -from typing import Any, Optional, Tuple +from typing import Hashable, Optional, Tuple from synapse.api.errors import LimitExceededError from synapse.types import Requester @@ -42,7 +42,9 @@ class Ratelimiter: # * How many times an action has occurred since a point in time # * The point in time # * The rate_hz of this particular entry. This can vary per request - self.actions = OrderedDict() # type: OrderedDict[Any, Tuple[float, int, float]] + self.actions = ( + OrderedDict() + ) # type: OrderedDict[Hashable, Tuple[float, int, float]] def can_requester_do_action( self, @@ -82,7 +84,7 @@ class Ratelimiter: def can_do_action( self, - key: Any, + key: Hashable, rate_hz: Optional[float] = None, burst_count: Optional[int] = None, update: bool = True, @@ -175,7 +177,7 @@ class Ratelimiter: def ratelimit( self, - key: Any, + key: Hashable, rate_hz: Optional[float] = None, burst_count: Optional[int] = None, update: bool = True, |