diff --git a/synapse/config/ratelimiting.py b/synapse/config/ratelimiting.py
index 6c41d55d74..a64aeeb6b2 100644
--- a/synapse/config/ratelimiting.py
+++ b/synapse/config/ratelimiting.py
@@ -12,10 +12,10 @@ class RatelimitConfig(Config):
super(RatelimitConfig, cls).add_arguments(parser)
rc_group = parser.add_argument_group("ratelimiting")
rc_group.add_argument(
- "--rc-messages-per-second", type=float, default=0.2
+ "--rc-messages-per-second", type=float, default=0.2,
help="number of messages a client can send per second"
)
rc_group.add_argument(
- "--rc_messsage_burst_count", type=float, default=10
+ "--rc-message-burst-count", type=float, default=10,
help="number of message a client can send before being throttled"
)
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(
|