From a23d78d5b0dd59719e09e28ae672d7633fadcf9b Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 1 Mar 2015 10:54:28 +0100 Subject: [PATCH] Removed the rate limiter in portal for now, not sure how useful it actually is. Need to investigate further ... later. --- evennia/server/portal/portalsessionhandler.py | 35 ++----------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/evennia/server/portal/portalsessionhandler.py b/evennia/server/portal/portalsessionhandler.py index c3d6b3f18d..28bcc7b46f 100644 --- a/evennia/server/portal/portalsessionhandler.py +++ b/evennia/server/portal/portalsessionhandler.py @@ -10,8 +10,8 @@ _CONNECTION_RATE = 5.0 _MIN_TIME_BETWEEN_CONNECTS = 1.0 / _CONNECTION_RATE _MOD_IMPORT = None -_MAX_CMD_RATE = 150.0 -_ERROR_COMMAND_OVERFLOW = "You entered commands too fast. Wait a moment and try again." +#_MAX_CMD_RATE = 80.0 +#_ERROR_COMMAND_OVERFLOW = "You entered commands too fast. Wait a moment and try again." #------------------------------------------------------------ # Portal-SessionHandler class @@ -38,14 +38,6 @@ class PortalSessionHandler(SessionHandler): self.uptime = time() self.connection_time = 0 self.time_last_connect = time() - self.cmd_last = time() - self.cmd_rate_history = deque([], 200) - self.cmd_rate = 0.0 - self.overflows = 0 - task.LoopingCall(self._report, interval=30) - - def _report(self): - print " INFO: cmd rate: %s, overflows: %s" % (sum(self.cmd_rate_history) / 200.0, self.overflows) def at_server_connection(self): """ @@ -301,29 +293,8 @@ class PortalSessionHandler(SessionHandler): Called by portal sessions for relaying data coming in from the protocol to the server. data is serialized before passed on. + """ - - now = time() - self.cmd_rate_history.append(1.0 / (now - self.cmd_last)) - - if session.logged_in: - # command flood protection - self.cmd_rate = sum(self.cmd_rate_history) / 200.0 - if self.cmd_rate > _MAX_CMD_RATE: - max_rate_per_session = _MAX_CMD_RATE / len(self.sessions) - session_rate = 1.0 / (now - session.cmd_last) - session.cmd_last = now - if session_rate > max_rate_per_session: - self.overflows += 1 - session.data_out(text=_ERROR_COMMAND_OVERFLOW) - if 100 % self.overflows == 0: - print "CMD OVERFLOW %s: %s (%s/%s, %s/%s)" % (session.sessid, text, - self.cmd_rate, _MAX_CMD_RATE, - session_rate, max_rate_per_session) - return - else: - session.cmd_last = now - self.portal.amp_protocol.call_remote_MsgPortal2Server(session.sessid, msg=text, data=kwargs)