2
0
Эх сурвалжийг харах

[Web] Delete log lines containing ratelimit hash key when removing rate limit hashes from db

andryyy 5 жил өмнө
parent
commit
92df42999e

+ 9 - 1
data/web/inc/functions.ratelimit.inc.php

@@ -203,7 +203,15 @@ function ratelimit($_action, $_scope, $_data = null) {
         return false;
         return false;
       }
       }
       try {
       try {
-        if ($redis->exists($data['hash'])) {
+        $data_rllog = $redis->lRange('RL_LOG', 0, -1);
+        if ($data_rllog) {
+          foreach ($data_rllog as $json_line) {
+            if (preg_match('/' . $data['hash'] . '/i', $json_line)) {
+              $redis->lRem('RL_LOG', $json_line, 0);
+            }
+          }
+        }
+        if ($redis->type($data['hash']) == Redis::REDIS_HASH) {
           $redis->delete($data['hash']);
           $redis->delete($data['hash']);
           $_SESSION['return'][] = array(
           $_SESSION['return'][] = array(
             'type' => 'success',
             'type' => 'success',