home · contact · privacy
Fix faulty main loop, comment out inactive cause buggy) flood protection.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 3 Dec 2020 01:12:13 +0000 (02:12 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 3 Dec 2020 01:12:13 +0000 (02:12 +0100)
plomrogue/io.py

index 252fac18d3c3fba5a5f6308f535e165746f20b7d..8110647647b1a809692949220135cf7eb9c4679d 100644 (file)
@@ -17,19 +17,22 @@ class GameIO():
         """Handle commands coming through queue q, run game, send results back.
 
         As basic flood protection, Only accepts one command per connection per
-        1/100 of a second.
+        1/100 of a second (currently commented out).
 
         """
         import time
         potential_flooders = {}
         while True:
             try:
-                command, connection_id = q.get(timeout=0.001)
-                if connection_id in potential_flooders:
-                    if int(time.time() * 100) == potential_flooders[connection_id]:
-                        continue
-                potential_flooders[connection_id] = int(time.time() * 100)
-                self.handle_input(connection_id, command)
+                connection_id, command = q.get(timeout=0.001)
+
+                # FIXME: this would catch the init command flood
+                #if connection_id in potential_flooders:
+                #    if int(time.time() * 100) == potential_flooders[connection_id]:
+                #        continue
+                #potential_flooders[connection_id] = int(time.time() * 100)
+
+                self.handle_input(command, connection_id)
             except queue.Empty:
                 self.game.run_tick()
 
@@ -38,6 +41,7 @@ class GameIO():
 
         The game loop works sequentially through game commands received
         via self.queue from connected servers' clients."""
+
         self.queue = queue.Queue()
         c = threading.Thread(target=self.loop, args=(self.queue,))
         c.start()