diff --git a/client/jailreader.py b/client/jailreader.py index f8757e26..29c499b8 100644 --- a/client/jailreader.py +++ b/client/jailreader.py @@ -35,7 +35,8 @@ logSys = logging.getLogger("fail2ban.client.config") class JailReader(ConfigReader): - actionCRE = re.compile("^((?:\w|-|_|\.)+)(?:\[(.*)\])?$") + actionCRE = re.compile("^((?:\w|-|_|\.)+)(?:\[(.*)\])?$", + flags=re.MULTILINE|re.DOTALL) def __init__(self, name, force_enable=False, **kwargs): ConfigReader.__init__(self, **kwargs) diff --git a/testcases/clientreadertestcase.py b/testcases/clientreadertestcase.py index faa8dcd6..8b0d0546 100644 --- a/testcases/clientreadertestcase.py +++ b/testcases/clientreadertestcase.py @@ -110,6 +110,12 @@ class JailReaderTest(unittest.TestCase): result = JailReader.splitAction(action) self.assertEquals(expected, result) + def testSplitActionMultiline(self): + action = "mail-whois-lines[logpath=/a/b\n/c/d]" + expected = ['mail-whois-lines', {'logpath': '/a/b\n/c/d'}] + result = JailReader.splitAction(action) + self.assertEquals(expected, result) + class JailsReaderTest(unittest.TestCase): def testProvidingBadBasedir(self):