From 183cfa6e0062159b4053c4b56eabe991ea89aef0 Mon Sep 17 00:00:00 2001 From: Steven Hiscocks Date: Mon, 15 Apr 2013 21:21:19 +0100 Subject: [PATCH] ENH: Default maxlines value in jail.conf, and verify value is int >0 --- bin/fail2ban-regex | 8 +------- config/jail.conf | 3 +++ fail2ban/server/filter.py | 6 ++++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/bin/fail2ban-regex b/bin/fail2ban-regex index e05a4687..b80affab 100755 --- a/bin/fail2ban-regex +++ b/bin/fail2ban-regex @@ -136,13 +136,7 @@ class Fail2banRegex: elif opt[0] in ["-v", "--verbose"]: self.__verbose = True elif opt[0] in ["-l", "--maxlines"]: - try: - self.__filter.setMaxLines(int(opt[1])) - except ValueError: - print "Invlaid value for maxlines: %s" % ( - opt[1]) - fail2banRegex.dispUsage() - sys.exit(-1) + self.__filter.setMaxLines(opt[1]) #@staticmethod def logIsFile(value): diff --git a/config/jail.conf b/config/jail.conf index 4399d0bd..b7ba25d4 100644 --- a/config/jail.conf +++ b/config/jail.conf @@ -32,6 +32,9 @@ findtime = 600 # "maxretry" is the number of failures before a host get banned. maxretry = 3 +# "maxlines" is number of log lines to buffer for multi-line regex searches +maxlines = 1 + # "backend" specifies the backend used to get files modification. # Available options are "pyinotify", "gamin", "polling" and "auto". # This option can be overridden in each jail as well. diff --git a/fail2ban/server/filter.py b/fail2ban/server/filter.py index fe990578..f028b44d 100644 --- a/fail2ban/server/filter.py +++ b/fail2ban/server/filter.py @@ -218,8 +218,10 @@ class Filter(JailThread): # @param value the line buffer size def setMaxLines(self, value): - self.__lineBufferSize = max(1, value) - logSys.info("Set maxLines = %i" % self.__lineBufferSize) + if int(value) <= 0: + raise ValueError("maxlines must be integer greater than zero") + self.__lineBufferSize = int(value) + logSys.info("Set maxlines = %i" % self.__lineBufferSize) ## # Get the maximum line buffer size.