From 4acb52f68f5a40408b8331686111658a1030de0b Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 7 Apr 2024 20:27:38 +0200 Subject: [PATCH] [fix] even if limiter not activated, botdetection must be activated Closes: #2975 Closes: #2995 Signed-off-by: Markus Heiser --- searx/limiter.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/searx/limiter.py b/searx/limiter.py index 08326b42e..93070dac5 100644 --- a/searx/limiter.py +++ b/searx/limiter.py @@ -218,10 +218,16 @@ def initialize(app: flask.Flask, settings): """Install the limiter""" global _INSTALLED # pylint: disable=global-statement + # even if the limiter is not activated, the botdetection must be activated + # (e.g. the self_info plugin uses the botdetection to get client IP) + + cfg = get_cfg() + redis_client = redisdb.client() + botdetection.init(cfg, redis_client) + if not (settings['server']['limiter'] or settings['server']['public_instance']): return - redis_client = redisdb.client() if not redis_client: logger.error( "The limiter requires Redis, please consult the documentation: " @@ -233,10 +239,8 @@ def initialize(app: flask.Flask, settings): _INSTALLED = True - cfg = get_cfg() if settings['server']['public_instance']: # overwrite limiter.toml setting cfg.set('botdetection.ip_limit.link_token', True) - botdetection.init(cfg, redis_client) app.before_request(pre_request)