mirror of https://github.com/fail2ban/fail2ban
ENH: Allow setting of ISO8601 via datepattern (default for systemd)
parent
1f1a56174f
commit
badf9d03b9
|
@ -123,6 +123,8 @@ class Beautifier:
|
||||||
msg = "Current date pattern set to: "
|
msg = "Current date pattern set to: "
|
||||||
if response is None:
|
if response is None:
|
||||||
msg = msg + "Default Detectors"
|
msg = msg + "Default Detectors"
|
||||||
|
elif response[0] is None:
|
||||||
|
msg = msg + "%s" % response[1]
|
||||||
else:
|
else:
|
||||||
msg = msg + "%s (%s)" % response
|
msg = msg + "%s (%s)" % response
|
||||||
elif inC[2] in ("ignoreip", "addignoreip", "delignoreip"):
|
elif inC[2] in ("ignoreip", "addignoreip", "delignoreip"):
|
||||||
|
|
|
@ -28,7 +28,7 @@ from failmanager import FailManager
|
||||||
from ticket import FailTicket
|
from ticket import FailTicket
|
||||||
from jailthread import JailThread
|
from jailthread import JailThread
|
||||||
from datedetector import DateDetector
|
from datedetector import DateDetector
|
||||||
from datetemplate import DatePatternRegex
|
from datetemplate import DatePatternRegex, DateISO8601
|
||||||
from mytime import MyTime
|
from mytime import MyTime
|
||||||
from failregex import FailRegex, Regex, RegexException
|
from failregex import FailRegex, Regex, RegexException
|
||||||
|
|
||||||
|
@ -199,11 +199,15 @@ class Filter(JailThread):
|
||||||
|
|
||||||
def setDatePattern(self, pattern):
|
def setDatePattern(self, pattern):
|
||||||
dateDetector = DateDetector()
|
dateDetector = DateDetector()
|
||||||
template = DatePatternRegex()
|
if pattern == "ISO8601":
|
||||||
if pattern[0] == "^": # Special extra to enable anchor
|
template = DateISO8601()
|
||||||
template.setPattern(pattern[1:], anchor=True)
|
template.setName("ISO8601")
|
||||||
else:
|
else:
|
||||||
template.setPattern(pattern, anchor=False)
|
template = DatePatternRegex()
|
||||||
|
if pattern[0] == "^": # Special extra to enable anchor
|
||||||
|
template.setPattern(pattern[1:], anchor=True)
|
||||||
|
else:
|
||||||
|
template.setPattern(pattern, anchor=False)
|
||||||
dateDetector.appendTemplate(template)
|
dateDetector.appendTemplate(template)
|
||||||
self.dateDetector = dateDetector
|
self.dateDetector = dateDetector
|
||||||
logSys.info("Date pattern set to `%r`: `%s`" %
|
logSys.info("Date pattern set to `%r`: `%s`" %
|
||||||
|
@ -221,7 +225,10 @@ class Filter(JailThread):
|
||||||
if len(templates) > 1:
|
if len(templates) > 1:
|
||||||
return None # Default Detectors in use
|
return None # Default Detectors in use
|
||||||
elif len(templates) == 1:
|
elif len(templates) == 1:
|
||||||
pattern = templates[0].getPattern()
|
if hasattr(templates[0], "getPattern"):
|
||||||
|
pattern = templates[0].getPattern()
|
||||||
|
else:
|
||||||
|
pattern = None
|
||||||
if templates[0].getRegex()[0] == "^":
|
if templates[0].getRegex()[0] == "^":
|
||||||
pattern = "^" + pattern
|
pattern = "^" + pattern
|
||||||
return pattern, templates[0].getName()
|
return pattern, templates[0].getName()
|
||||||
|
|
|
@ -57,6 +57,7 @@ class FilterSystemd(JournalFilter): # pragma: systemd no cover
|
||||||
# Initialise systemd-journal connection
|
# Initialise systemd-journal connection
|
||||||
self.__journal = journal.Reader(converters={'__CURSOR': lambda x: x})
|
self.__journal = journal.Reader(converters={'__CURSOR': lambda x: x})
|
||||||
self.__matches = []
|
self.__matches = []
|
||||||
|
self.setDatePattern("ISO8601")
|
||||||
logSys.debug("Created FilterSystemd")
|
logSys.debug("Created FilterSystemd")
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue