diff options
author | Mark Haines <mark.haines@matrix.org> | 2014-09-02 18:22:15 +0100 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2014-09-02 18:22:15 +0100 |
commit | 780548b577f5e59cd4f3aa03cf20dbf66a790a39 (patch) | |
tree | 3d1c561ccce226f60ff933f51643940fcf2d25fd /synapse/handlers | |
parent | Add ratelimiting config (diff) | |
download | synapse-780548b577f5e59cd4f3aa03cf20dbf66a790a39.tar.xz |
rate limiting for message sending
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/_base.py | 4 | ||||
-rw-r--r-- | synapse/handlers/message.py | 2 | ||||
-rw-r--r-- | synapse/handlers/room.py | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/synapse/handlers/_base.py b/synapse/handlers/_base.py index dc1298366e..c150b60e07 100644 --- a/synapse/handlers/_base.py +++ b/synapse/handlers/_base.py @@ -35,12 +35,12 @@ class BaseHandler(object): allowed, time_allowed = self.ratelimiter.send_message( user_id, time_now, msg_rate_hz=self.hs.config.rc_messages_per_second, - burst_count=self.hs.config.rc_messsage_burst_count, + burst_count=self.hs.config.rc_message_burst_count, ) if not allowed: raise cs_error( "Limit exceeded", - Codes.M_LIMIT_EXCEEDED, + Codes.LIMIT_EXCEEDED, retry_after_ms=1000*(time_allowed - time_now), ) diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py index 4aeb2089f5..c9e3c4e451 100644 --- a/synapse/handlers/message.py +++ b/synapse/handlers/message.py @@ -76,6 +76,8 @@ class MessageHandler(BaseRoomHandler): Raises: SynapseError if something went wrong. """ + + self.ratelimit(event.user_id) # TODO(paul): Why does 'event' not have a 'user' object? user = self.hs.parse_userid(event.user_id) assert user.is_mine, "User must be our own: %s" % (user,) diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index 048b719307..b0c94d35af 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -49,6 +49,7 @@ class RoomCreationHandler(BaseRoomHandler): SynapseError if the room ID was taken, couldn't be stored, or something went horribly wrong. """ + self.ratelimit(user_id) if "room_alias_name" in config: room_alias = RoomAlias.create_local( |