diff --git a/fail2ban/client/configurator.py b/fail2ban/client/configurator.py index 3b9845b6..4d28238f 100644 --- a/fail2ban/client/configurator.py +++ b/fail2ban/client/configurator.py @@ -72,8 +72,8 @@ class Configurator: def getEarlyOptions(self): return self.__fail2ban.getEarlyOptions() - def getOptions(self, jail = None): - self.__fail2ban.getOptions() + def getOptions(self, jail=None, updateMainOpt=None): + self.__fail2ban.getOptions(updateMainOpt) return self.__jails.getOptions(jail) def convertToProtocol(self): diff --git a/fail2ban/client/fail2bancmdline.py b/fail2ban/client/fail2bancmdline.py index 356255af..e1bc5f1e 100644 --- a/fail2ban/client/fail2bancmdline.py +++ b/fail2ban/client/fail2bancmdline.py @@ -242,7 +242,7 @@ class Fail2banCmdLine(): try: self.configurator.Reload() self.configurator.readAll() - ret = self.configurator.getOptions(jail) + ret = self.configurator.getOptions(jail, self._conf) self.configurator.convertToProtocol() stream = self.configurator.getConfigStream() except Exception as e: diff --git a/fail2ban/client/fail2banreader.py b/fail2ban/client/fail2banreader.py index b3012c9b..8e1b0e5c 100644 --- a/fail2ban/client/fail2banreader.py +++ b/fail2ban/client/fail2banreader.py @@ -49,13 +49,15 @@ class Fail2banReader(ConfigReader): ] return ConfigReader.getOptions(self, "Definition", opts) - def getOptions(self): + def getOptions(self, updateMainOpt=None): opts = [["string", "loglevel", "INFO" ], ["string", "logtarget", "STDERR"], ["string", "syslogsocket", "auto"], ["string", "dbfile", "/var/lib/fail2ban/fail2ban.sqlite3"], ["string", "dbpurgeage", "1d"]] self.__opts = ConfigReader.getOptions(self, "Definition", opts) + if updateMainOpt: + self.__opts.update(updateMainOpt) def convert(self): # Ensure logtarget/level set first so any db errors are captured