diff --git a/fail2ban/client/actionreader.py b/fail2ban/client/actionreader.py index ca4080d0..d2d71a74 100644 --- a/fail2ban/client/actionreader.py +++ b/fail2ban/client/actionreader.py @@ -43,27 +43,38 @@ class ActionReader(DefinitionInitConfigReader): ["string", "actionunban", ""], ] + def __init__(self, file_, jailName, initOpts, **kwargs): + self._name = initOpts.pop("name", file_) + DefinitionInitConfigReader.__init__( + self, file_, jailName, initOpts, **kwargs) + + def setName(self, name): + self._name = name + + def getName(self): + return self._name + def read(self): return ConfigReader.read(self, os.path.join("action.d", self._file)) def convert(self): - head = ["set", self._name] + head = ["set", self._jailName] stream = list() - stream.append(head + ["addaction", self._file]) + stream.append(head + ["addaction", self._name]) for opt in self._opts: if opt == "actionstart": - stream.append(head + ["actionstart", self._file, self._opts[opt]]) + stream.append(head + ["actionstart", self._name, self._opts[opt]]) elif opt == "actionstop": - stream.append(head + ["actionstop", self._file, self._opts[opt]]) + stream.append(head + ["actionstop", self._name, self._opts[opt]]) elif opt == "actioncheck": - stream.append(head + ["actioncheck", self._file, self._opts[opt]]) + stream.append(head + ["actioncheck", self._name, self._opts[opt]]) elif opt == "actionban": - stream.append(head + ["actionban", self._file, self._opts[opt]]) + stream.append(head + ["actionban", self._name, self._opts[opt]]) elif opt == "actionunban": - stream.append(head + ["actionunban", self._file, self._opts[opt]]) + stream.append(head + ["actionunban", self._name, self._opts[opt]]) # cInfo if self._initOpts: for p in self._initOpts: - stream.append(head + ["setcinfo", self._file, p, self._initOpts[p]]) + stream.append(head + ["setcinfo", self._name, p, self._initOpts[p]]) return stream diff --git a/fail2ban/client/configreader.py b/fail2ban/client/configreader.py index 9a1fedaf..ac6af8f7 100644 --- a/fail2ban/client/configreader.py +++ b/fail2ban/client/configreader.py @@ -145,7 +145,7 @@ class DefinitionInitConfigReader(ConfigReader): def __init__(self, file_, jailName, initOpts, **kwargs): ConfigReader.__init__(self, **kwargs) self._file = file_ - self._name = jailName + self._jailName = jailName self._initOpts = initOpts def setFile(self, fileName): @@ -154,11 +154,11 @@ class DefinitionInitConfigReader(ConfigReader): def getFile(self): return self.__file - def setName(self, name): - self._name = name + def setJailName(self, jailName): + self._jailName = jailName - def getName(self): - return self._name + def getJailName(self): + return self._jailName def read(self): return ConfigReader.read(self, self._file) diff --git a/fail2ban/client/filterreader.py b/fail2ban/client/filterreader.py index 62424ddb..5369bc5f 100644 --- a/fail2ban/client/filterreader.py +++ b/fail2ban/client/filterreader.py @@ -50,14 +50,14 @@ class FilterReader(DefinitionInitConfigReader): for regex in self._opts[opt].split('\n'): # Do not send a command if the rule is empty. if regex != '': - stream.append(["set", self._name, "addfailregex", regex]) + stream.append(["set", self._jailName, "addfailregex", regex]) elif opt == "ignoreregex": for regex in self._opts[opt].split('\n'): # Do not send a command if the rule is empty. if regex != '': - stream.append(["set", self._name, "addignoreregex", regex]) + stream.append(["set", self._jailName, "addignoreregex", regex]) if self._initOpts: if 'maxlines' in self._initOpts: - stream.append(["set", self._name, "maxlines", self._initOpts["maxlines"]]) + stream.append(["set", self._jailName, "maxlines", self._initOpts["maxlines"]]) return stream