]> git.openstreetmap.org Git - nominatim.git/commitdiff
only block bulks with ignored redirect
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 11 May 2018 20:44:15 +0000 (22:44 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 11 May 2018 20:44:15 +0000 (22:44 +0200)
utils/cron_ipanalyse.py

index 4c66b001a908635770b1a3b2644e1534c0945d6c..35db77595ddcff0788fdfec89867499fdd28d635 100755 (executable)
@@ -232,9 +232,9 @@ class IPstats:
         self.bad_ua = False
 
     def add_long(self, logentry):
         self.bad_ua = False
 
     def add_long(self, logentry):
+        self.long_total += 1
         if logentry.retcode == 301:
             return
         if logentry.retcode == 301:
             return
-        self.long_total += 1
         if logentry.request is not None:
             self.long_api += 1
         if not self.bad_ua:
         if logentry.request is not None:
             self.long_api += 1
         if not self.bad_ua:
@@ -263,7 +263,7 @@ class IPstats:
             return None if self.long_total < 20 else 'block'
         if self.long_api > BLOCK_UPPER \
             or self.short_api > BLOCK_UPPER / 3 \
             return None if self.long_total < 20 else 'block'
         if self.long_api > BLOCK_UPPER \
             or self.short_api > BLOCK_UPPER / 3 \
-            or self.short_total == self.redirected:
+            or (self.redirected > 100 and self.short_total == self.redirected):
                 # client totally overdoing it
                 return 'block'
         if was_bulked:
                 # client totally overdoing it
                 return 'block'
         if was_bulked: