- Hopefully fixed bug #1256075

git-svn-id: https://fail2ban.svn.sourceforge.net/svnroot/fail2ban/branches/FAIL2BAN-0_5@187 a942ae1a-1317-0410-a47c-b1dcaea8d605
0.5
Cyril Jaquier 2005-09-05 21:06:15 +00:00
parent cdc7b4b048
commit 54f4a7d240
1 changed files with 16 additions and 4 deletions

View File

@ -134,11 +134,13 @@ class LogReader:
logSys.debug(self.logPath) logSys.debug(self.logPath)
logFile = self.openLogFile() logFile = self.openLogFile()
self.setFilePos(logFile) self.setFilePos(logFile)
lastLine = '' lastLine = None
for line in logFile: for line in logFile:
if not self.hasTime(line):
# There is no valid time in this line
continue
lastLine = line lastLine = line
failList = self.findFailure(line) for element in self.findFailure(line):
for element in failList:
ip = element[0] ip = element[0]
unixTime = element[1] unixTime = element[1]
if unixTime < time.time()-self.findTime: if unixTime < time.time()-self.findTime:
@ -152,7 +154,8 @@ class LogReader:
else: else:
ipList[ip] = (1, unixTime) ipList[ip] = (1, unixTime)
self.lastPos = logFile.tell() self.lastPos = logFile.tell()
self.lastDate = self.getTime(lastLine) if lastLine:
self.lastDate = self.getTime(lastLine)
logFile.close() logFile.close()
return ipList return ipList
@ -175,6 +178,15 @@ class LogReader:
failList.append([ip, date]) failList.append([ip, date])
return failList return failList
def hasTime(self, line):
""" Return true if the line contains a date
"""
timeMatch = re.search(self.timeregex, line)
if timeMatch:
return True
else:
return False
def getTime(self, line): def getTime(self, line):
""" Gets the time of a log message. """ Gets the time of a log message.
""" """