Merge pull request #1175 from matrix-org/luke/feature-configurable-as-rate-limiting

Allow Configurable Rate Limiting Per AS
This commit is contained in:
Luke Barnard 2016-10-20 16:21:10 +01:00 committed by GitHub
commit e01a1bc92d
5 changed files with 35 additions and 12 deletions

View file

@ -57,10 +57,16 @@ class BaseHandler(object):
time_now = self.clock.time()
user_id = requester.user.to_string()
# The AS user itself is never rate limited.
app_service = self.store.get_app_service_by_user_id(user_id)
if app_service is not None:
return # do not ratelimit app service senders
# Disable rate limiting of users belonging to any AS that is configured
# not to be rate limited in its registration file (rate_limited: true|false).
if requester.app_service and not requester.app_service.is_rate_limited():
return
allowed, time_allowed = self.ratelimiter.send_message(
user_id, time_now,
msg_rate_hz=self.hs.config.rc_messages_per_second,