mirror of https://github.com/fail2ban/fail2ban
normalized time to string calls.
parent
f959f58e15
commit
4b934c784d
|
@ -602,7 +602,7 @@ class Filter(JailThread):
|
||||||
if self._inIgnoreIPList(ip, tick):
|
if self._inIgnoreIPList(ip, tick):
|
||||||
continue
|
continue
|
||||||
logSys.info(
|
logSys.info(
|
||||||
"[%s] Found %s - %s", self.jailName, ip, datetime.datetime.fromtimestamp(unixTime).strftime("%Y-%m-%d %H:%M:%S")
|
"[%s] Found %s - %s", self.jailName, ip, MyTime.time2str(unixTime)
|
||||||
)
|
)
|
||||||
self.failManager.addFailure(tick)
|
self.failManager.addFailure(tick)
|
||||||
# report to observer - failure was found, for possibly increasing of it retry counter (asynchronous)
|
# report to observer - failure was found, for possibly increasing of it retry counter (asynchronous)
|
||||||
|
@ -1092,7 +1092,7 @@ class FileFilter(Filter):
|
||||||
fs = container.getFileSize()
|
fs = container.getFileSize()
|
||||||
if logSys.getEffectiveLevel() <= logging.DEBUG:
|
if logSys.getEffectiveLevel() <= logging.DEBUG:
|
||||||
logSys.debug("Seek to find time %s (%s), file size %s", date,
|
logSys.debug("Seek to find time %s (%s), file size %s", date,
|
||||||
datetime.datetime.fromtimestamp(date).strftime("%Y-%m-%d %H:%M:%S"), fs)
|
MyTime.time2str(date), fs)
|
||||||
minp = container.getPos()
|
minp = container.getPos()
|
||||||
maxp = fs
|
maxp = fs
|
||||||
tryPos = minp
|
tryPos = minp
|
||||||
|
@ -1171,7 +1171,7 @@ class FileFilter(Filter):
|
||||||
container.setPos(foundPos)
|
container.setPos(foundPos)
|
||||||
if logSys.getEffectiveLevel() <= logging.DEBUG:
|
if logSys.getEffectiveLevel() <= logging.DEBUG:
|
||||||
logSys.debug("Position %s from %s, found time %s (%s) within %s seeks", lastPos, fs, foundTime,
|
logSys.debug("Position %s from %s, found time %s (%s) within %s seeks", lastPos, fs, foundTime,
|
||||||
(datetime.datetime.fromtimestamp(foundTime).strftime("%Y-%m-%d %H:%M:%S") if foundTime is not None else ''), cntr)
|
(MyTime.time2str(foundTime) if foundTime is not None else ''), cntr)
|
||||||
|
|
||||||
def status(self, flavor="basic"):
|
def status(self, flavor="basic"):
|
||||||
"""Status of Filter plus files being monitored.
|
"""Status of Filter plus files being monitored.
|
||||||
|
|
|
@ -115,14 +115,14 @@ class MyTime:
|
||||||
return time.localtime(MyTime.myTime)
|
return time.localtime(MyTime.myTime)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def time2str(unixTime):
|
def time2str(unixTime, format="%Y-%m-%d %H:%M:%S"):
|
||||||
"""Convert time to a string representing as date and time in ISO 8601
|
"""Convert time to a string representing as date and time using given format.
|
||||||
format, YYYY-MM-DD HH:MM:SS without microseconds.
|
Default format is ISO 8601, YYYY-MM-DD HH:MM:SS without microseconds.
|
||||||
|
|
||||||
@return ISO-capable string representation of given unixTime
|
@return ISO-capable string representation of given unixTime
|
||||||
"""
|
"""
|
||||||
return datetime.datetime.fromtimestamp(
|
return datetime.datetime.fromtimestamp(
|
||||||
unixTime).replace(microsecond=0).strftime("%Y-%m-%d %H:%M:%S")
|
unixTime).replace(microsecond=0).strftime(format)
|
||||||
|
|
||||||
## precreate/precompile primitives used in str2seconds:
|
## precreate/precompile primitives used in str2seconds:
|
||||||
|
|
||||||
|
|
|
@ -393,7 +393,7 @@ class ObserverThread(JailThread):
|
||||||
return
|
return
|
||||||
# retry counter was increased - add it again:
|
# retry counter was increased - add it again:
|
||||||
logSys.info("[%s] Found %s, bad - %s, %s # -> %s%s", jail.name, ip,
|
logSys.info("[%s] Found %s, bad - %s, %s # -> %s%s", jail.name, ip,
|
||||||
datetime.datetime.fromtimestamp(unixTime).strftime("%Y-%m-%d %H:%M:%S"), banCount, retryCount,
|
MyTime.time2str(unixTime), banCount, retryCount,
|
||||||
(', Ban' if retryCount >= maxRetry else ''))
|
(', Ban' if retryCount >= maxRetry else ''))
|
||||||
# retryCount-1, because a ticket was already once incremented by filter self
|
# retryCount-1, because a ticket was already once incremented by filter self
|
||||||
retryCount = failManager.addFailure(ticket, retryCount - 1, True)
|
retryCount = failManager.addFailure(ticket, retryCount - 1, True)
|
||||||
|
@ -454,7 +454,7 @@ class ObserverThread(JailThread):
|
||||||
# check current ticket time to prevent increasing for twice read tickets (restored from log file besides database after restart)
|
# check current ticket time to prevent increasing for twice read tickets (restored from log file besides database after restart)
|
||||||
if ticket.getTime() > timeOfBan:
|
if ticket.getTime() > timeOfBan:
|
||||||
logSys.info('[%s] IP %s is bad: %s # last %s - incr %s to %s' % (jail.name, ip, banCount,
|
logSys.info('[%s] IP %s is bad: %s # last %s - incr %s to %s' % (jail.name, ip, banCount,
|
||||||
datetime.datetime.fromtimestamp(timeOfBan).strftime("%Y-%m-%d %H:%M:%S"),
|
MyTime.time2str(timeOfBan),
|
||||||
datetime.timedelta(seconds=int(orgBanTime)), datetime.timedelta(seconds=int(banTime))));
|
datetime.timedelta(seconds=int(orgBanTime)), datetime.timedelta(seconds=int(banTime))));
|
||||||
else:
|
else:
|
||||||
ticket.restored = True
|
ticket.restored = True
|
||||||
|
@ -485,7 +485,7 @@ class ObserverThread(JailThread):
|
||||||
if btime != -1:
|
if btime != -1:
|
||||||
bendtime = ticket.getTime() + btime
|
bendtime = ticket.getTime() + btime
|
||||||
logtime = (datetime.timedelta(seconds=int(btime)),
|
logtime = (datetime.timedelta(seconds=int(btime)),
|
||||||
datetime.datetime.fromtimestamp(bendtime).strftime("%Y-%m-%d %H:%M:%S"))
|
MyTime.time2str(bendtime))
|
||||||
# check ban is not too old :
|
# check ban is not too old :
|
||||||
if bendtime < MyTime.time():
|
if bendtime < MyTime.time():
|
||||||
logSys.debug('Ignore old bantime %s', logtime[1])
|
logSys.debug('Ignore old bantime %s', logtime[1])
|
||||||
|
|
|
@ -94,7 +94,7 @@ class _tmSerial():
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _tm(time):
|
def _tm(time):
|
||||||
# ## strftime it too slow for large time serializer :
|
# ## strftime it too slow for large time serializer :
|
||||||
# return datetime.datetime.fromtimestamp(time).strftime("%Y-%m-%d %H:%M:%S")
|
# return MyTime.time2str(time)
|
||||||
c = _tmSerial
|
c = _tmSerial
|
||||||
sec = (time % 60)
|
sec = (time % 60)
|
||||||
if c._last_s == time - sec:
|
if c._last_s == time - sec:
|
||||||
|
@ -306,7 +306,7 @@ class BasicFilter(unittest.TestCase):
|
||||||
unittest.F2B.SkipIfFast()
|
unittest.F2B.SkipIfFast()
|
||||||
## test function "_tm" works correct (returns the same as slow strftime):
|
## test function "_tm" works correct (returns the same as slow strftime):
|
||||||
for i in xrange(1417512352, (1417512352 // 3600 + 3) * 3600):
|
for i in xrange(1417512352, (1417512352 // 3600 + 3) * 3600):
|
||||||
tm = datetime.datetime.fromtimestamp(i).strftime("%Y-%m-%d %H:%M:%S")
|
tm = MyTime.time2str(i)
|
||||||
if _tm(i) != tm: # pragma: no cover - never reachable
|
if _tm(i) != tm: # pragma: no cover - never reachable
|
||||||
self.assertEqual((_tm(i), i), (tm, i))
|
self.assertEqual((_tm(i), i), (tm, i))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue