From 666848bdc4c4d7850c7fed528608a05fc9672ffd Mon Sep 17 00:00:00 2001 From: horida <> Date: Mon, 9 Sep 2019 10:04:13 +0200 Subject: [PATCH] send user/ip blocked signal only once --- defender/utils.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/defender/utils.py b/defender/utils.py index 1952629..737146c 100644 --- a/defender/utils.py +++ b/defender/utils.py @@ -173,12 +173,14 @@ def block_ip(ip_address): if config.DISABLE_IP_LOCKOUT: # no need to block, we disabled it. return + already_blocked = is_source_ip_already_locked(ip_address) key = get_ip_blocked_cache_key(ip_address) if config.COOLOFF_TIME: REDIS_SERVER.set(key, 'blocked', config.COOLOFF_TIME) else: REDIS_SERVER.set(key, 'blocked') - send_ip_block_signal(ip_address) + if not already_blocked: + send_ip_block_signal(ip_address) def block_username(username): @@ -189,12 +191,14 @@ def block_username(username): if config.DISABLE_USERNAME_LOCKOUT: # no need to block, we disabled it. return + already_blocked = is_user_already_locked(username) key = get_username_blocked_cache_key(username) if config.COOLOFF_TIME: REDIS_SERVER.set(key, 'blocked', config.COOLOFF_TIME) else: REDIS_SERVER.set(key, 'blocked') - send_username_block_signal(username) + if not already_blocked: + send_username_block_signal(username) def record_failed_attempt(ip_address, username):