diff --git a/MANIFEST b/MANIFEST index 0f09a20c..c055a5f0 100644 --- a/MANIFEST +++ b/MANIFEST @@ -54,6 +54,7 @@ testcases/files/testcase04.log setup.py setup.cfg version.py +protocol.py config/jail.conf config/filter.d/postfix.conf config/filter.d/vsftpd.conf diff --git a/fail2ban-client b/fail2ban-client index 4735a234..dff6aedd 100755 --- a/fail2ban-client +++ b/fail2ban-client @@ -37,6 +37,7 @@ from version import version from client.csocket import CSocket from client.configurator import Configurator from client.beautifier import Beautifier +from protocol import printFormatted # Gets the instance of the logger. logSys = logging.getLogger("fail2ban.client") @@ -91,22 +92,10 @@ class Fail2banClient: print " -V, --version print the version" print print "Command:" - print " start start the server and the jails" - print " reload reload the configuration" - print " stop stop all jails and terminate the server" - print " status get the current status" - print - print " set loglevel set loglevel to " - print " get loglevel get loglevel" - print " set logtarget set log target to " - print " get logtarget get log target" - print - print " add [BACKEND] create using [BACKEND]" - print " set set the value for " - print " get get the value for " - print " start start " - print " stop stop . The jail is removed" - print " status get the current status of " + + # Prints the protocol + printFormatted() + print print "Report bugs to " diff --git a/protocol.py b/protocol.py new file mode 100644 index 00000000..daf36e6d --- /dev/null +++ b/protocol.py @@ -0,0 +1,66 @@ +# This file is part of Fail2Ban. +# +# Fail2Ban is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# Fail2Ban is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Fail2Ban; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Author: Cyril Jaquier +# +# $Revision: 456 $ + +__author__ = "Cyril Jaquier" +__version__ = "$Revision: 456 $" +__date__ = "$Date: 2006-11-12 11:56:40 +0100 (Sun, 12 Nov 2006) $" +__copyright__ = "Copyright (c) 2004 Cyril Jaquier" +__license__ = "GPL" + +import textwrap + +## +# Describes the protocol used to communicate with the server. + +protocol = [ +["start", "starts the server and the jails"], +["reload", "reloads the configuration"], +["stop", "stops all jails and terminate the server"], +["status", "gets the current status of the server"], +["ping", "tests if the server is alive"], +['', ''], +["set loglevel ", "sets logging level to "], +["get loglevel", "gets the logging level"], +["set logtarget ", "sets logging target to "], +["get logtarget", "gets logging target"], +['', ''], +["add ", "creates using "], +["set ", "sets the value for "], +["get ", "gets the value for "], +['', ''], +["start ", "starts "], +["stop ", "stops . The jail is removed"], +["status ", "gets the current status of "] +] + +## +# Prints the protocol in a "man" format. This is used for the +# "-h" output of fail2ban-client. + +def printFormatted(): + INDENT=4 + FIRST=30 + WIDTH=75 + for command in [' ' * INDENT + m[0] + + "\n".join(textwrap.wrap(m[1], WIDTH - INDENT, + initial_indent=' ' * (FIRST - len(m[0])), + subsequent_indent=' ' * (FIRST + INDENT))) + for m in protocol]: + print command diff --git a/setup.py b/setup.py index b9896166..04009636 100755 --- a/setup.py +++ b/setup.py @@ -54,7 +54,10 @@ setup( 'fail2ban-server', 'fail2ban-regex' ], - py_modules = ['version'], + py_modules = [ + 'version', + 'protocol' + ], packages = [ 'client', 'server'