mirror of https://github.com/fail2ban/fail2ban
- Added signal handling in fail2ban-client
- Added a wonderful visual effect when waiting on the server - Improved error message. Thanks to Yaroslav Halchenko git-svn-id: https://fail2ban.svn.sourceforge.net/svnroot/fail2ban/trunk@515 a942ae1a-1317-0410-a47c-b1dcaea8d6050.x
parent
6cf814245e
commit
26a762ac94
|
@ -4,9 +4,14 @@
|
||||||
|_| \__,_|_|_/___|_.__/\__,_|_||_|
|
|_| \__,_|_|_/___|_.__/\__,_|_||_|
|
||||||
|
|
||||||
=============================================================
|
=============================================================
|
||||||
Fail2Ban (version 0.7.6) 2007/01/04
|
Fail2Ban (version 0.7.7) 2007/??/??
|
||||||
=============================================================
|
=============================================================
|
||||||
|
|
||||||
|
ver. 0.7.7 (2007/??/??)
|
||||||
|
----------
|
||||||
|
- Added signal handling in fail2ban-client
|
||||||
|
- Added a wonderful visual effect when waiting on the server
|
||||||
|
|
||||||
ver. 0.7.6 (2007/01/04) - beta
|
ver. 0.7.6 (2007/01/04) - beta
|
||||||
----------
|
----------
|
||||||
- Added a "sleep 1" in redhat-initd. Thanks to Jim Wight
|
- Added a "sleep 1" in redhat-initd. Thanks to Jim Wight
|
||||||
|
|
|
@ -25,7 +25,7 @@ __date__ = "$Date$"
|
||||||
__copyright__ = "Copyright (c) 2004 Cyril Jaquier"
|
__copyright__ = "Copyright (c) 2004 Cyril Jaquier"
|
||||||
__license__ = "GPL"
|
__license__ = "GPL"
|
||||||
|
|
||||||
import sys, string, os, pickle, re, logging
|
import sys, string, os, pickle, re, logging, signal
|
||||||
import getopt, time, readline, shlex, socket
|
import getopt, time, readline, shlex, socket
|
||||||
|
|
||||||
# Inserts our own modules path first in the list
|
# Inserts our own modules path first in the list
|
||||||
|
@ -87,7 +87,7 @@ class Fail2banClient:
|
||||||
print " -i interactive mode"
|
print " -i interactive mode"
|
||||||
print " -v increase verbosity"
|
print " -v increase verbosity"
|
||||||
print " -q decrease verbosity"
|
print " -q decrease verbosity"
|
||||||
print " -x force execution of the server"
|
print " -x force execution of the server (remove socket file)"
|
||||||
print " -h, --help display this help message"
|
print " -h, --help display this help message"
|
||||||
print " -V, --version print the version"
|
print " -V, --version print the version"
|
||||||
print
|
print
|
||||||
|
@ -104,6 +104,12 @@ class Fail2banClient:
|
||||||
print "and bans the corresponding IP addresses using firewall rules."
|
print "and bans the corresponding IP addresses using firewall rules."
|
||||||
print
|
print
|
||||||
|
|
||||||
|
def __sigTERMhandler(self, signum, frame):
|
||||||
|
# Print a new line because we probably come from wait
|
||||||
|
print
|
||||||
|
logSys.warn("Caught signal %d. Exiting" % signum)
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
def __getCmdLineOptions(self, optList):
|
def __getCmdLineOptions(self, optList):
|
||||||
""" Gets the command line options
|
""" Gets the command line options
|
||||||
"""
|
"""
|
||||||
|
@ -180,7 +186,11 @@ class Fail2banClient:
|
||||||
self.__processCmd(self.__stream, False)
|
self.__processCmd(self.__stream, False)
|
||||||
return True
|
return True
|
||||||
except ServerExecutionException:
|
except ServerExecutionException:
|
||||||
logSys.error("Could not start server. Try -x option")
|
logSys.error("Could not start server. Maybe an old " +
|
||||||
|
"socket file is still present. Try to " +
|
||||||
|
"remove " + self.__conf["socket"] + ". If " +
|
||||||
|
"you used fail2ban-client to start the " +
|
||||||
|
"server, adding the -x option will do it")
|
||||||
return False
|
return False
|
||||||
elif len(cmd) == 1 and cmd[0] == "reload":
|
elif len(cmd) == 1 and cmd[0] == "reload":
|
||||||
if self.__ping():
|
if self.__ping():
|
||||||
|
@ -229,18 +239,40 @@ class Fail2banClient:
|
||||||
def __waitOnServer(self):
|
def __waitOnServer(self):
|
||||||
# Wait for the server to start
|
# Wait for the server to start
|
||||||
cnt = 0
|
cnt = 0
|
||||||
|
if self.__conf["verbose"] > 1:
|
||||||
|
pos = 0
|
||||||
|
delta = 1
|
||||||
|
mask = "[ ]"
|
||||||
while not self.__ping():
|
while not self.__ping():
|
||||||
|
# Wonderful visual :)
|
||||||
|
if self.__conf["verbose"] > 1:
|
||||||
|
pos += delta
|
||||||
|
sys.stdout.write("\rINFO " + mask[:pos] + '#' + mask[pos+1:] +
|
||||||
|
" Waiting on the server...")
|
||||||
|
sys.stdout.flush()
|
||||||
|
if pos > len(mask)-3:
|
||||||
|
delta = -1
|
||||||
|
elif pos < 2:
|
||||||
|
delta = 1
|
||||||
# The server has 30 secondes to start.
|
# The server has 30 secondes to start.
|
||||||
if cnt >= 300:
|
if cnt >= 300:
|
||||||
|
if self.__conf["verbose"] > 1:
|
||||||
|
sys.stdout.write('\n')
|
||||||
raise ServerExecutionException("Failed to start server")
|
raise ServerExecutionException("Failed to start server")
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
cnt += 1
|
cnt += 1
|
||||||
|
if self.__conf["verbose"] > 1:
|
||||||
|
sys.stdout.write('\n')
|
||||||
|
|
||||||
|
|
||||||
def start(self, argv):
|
def start(self, argv):
|
||||||
# Command line options
|
# Command line options
|
||||||
self.__argv = argv
|
self.__argv = argv
|
||||||
|
|
||||||
|
# Install signal handlers
|
||||||
|
signal.signal(signal.SIGTERM, self.__sigTERMhandler)
|
||||||
|
signal.signal(signal.SIGINT, self.__sigTERMhandler)
|
||||||
|
|
||||||
# Reads the command line options.
|
# Reads the command line options.
|
||||||
try:
|
try:
|
||||||
cmdOpts = 'hc:s:xdviqV'
|
cmdOpts = 'hc:s:xdviqV'
|
||||||
|
|
|
@ -78,7 +78,7 @@ class Fail2banServer:
|
||||||
print " -b start in background"
|
print " -b start in background"
|
||||||
print " -f start in foreground"
|
print " -f start in foreground"
|
||||||
print " -s <FILE> socket path"
|
print " -s <FILE> socket path"
|
||||||
print " -x force execution of the server"
|
print " -x force execution of the server (remove socket file)"
|
||||||
print " -h, --help display this help message"
|
print " -h, --help display this help message"
|
||||||
print " -V, --version print the version"
|
print " -V, --version print the version"
|
||||||
print
|
print
|
||||||
|
|
Loading…
Reference in New Issue