Merge pull request #285 from kwirk/python3-config-unicode

BF+DOC: All fail2ban config files are UTF-8 decoded for python3
pull/282/merge
Yaroslav Halchenko 2013-07-14 07:31:57 -07:00
commit 6ee2323fa1
3 changed files with 14 additions and 3 deletions

View File

@ -21,7 +21,7 @@ Installation:
this case, you should use it instead.** this case, you should use it instead.**
Required: Required:
- [Python >= 2.4, including 3.x](http://www.python.org) - [Python2 >= 2.4 or Python3 >= 3.2](http://www.python.org)
Optional: Optional:
- [pyinotify >= 0.8.3](https://github.com/seb-m/pyinotify) - [pyinotify >= 0.8.3](https://github.com/seb-m/pyinotify)

View File

@ -115,7 +115,14 @@ after = 1.conf
SCPWI = SafeConfigParserWithIncludes SCPWI = SafeConfigParserWithIncludes
parser = SafeConfigParser() parser = SafeConfigParser()
parser.read(resource) try:
if sys.version_info >= (3,2): # pragma: no cover
parser.read(resource, encoding='utf-8')
else:
parser.read(resource)
except UnicodeDecodeError, e:
logSys.error("Error decoding config file '%s': %s" % (resource, e))
return []
resourceDir = os.path.dirname(resource) resourceDir = os.path.dirname(resource)
@ -146,5 +153,8 @@ after = 1.conf
for filename in filenames: for filename in filenames:
fileNamesFull += SafeConfigParserWithIncludes.getIncludes(filename) fileNamesFull += SafeConfigParserWithIncludes.getIncludes(filename)
logSys.debug("Reading files: %s" % fileNamesFull) logSys.debug("Reading files: %s" % fileNamesFull)
return SafeConfigParser.read(self, fileNamesFull) if sys.version_info >= (3,2): # pragma: no cover
return SafeConfigParser.read(self, fileNamesFull, encoding='utf-8')
else:
return SafeConfigParser.read(self, fileNamesFull)

View File

@ -12,6 +12,7 @@ Fail2ban has three configuration file types. Action files are the commands for b
Filter files tell fail2ban how to detect authentication failures, and Jail configurations combine filters with actions into jails. Filter files tell fail2ban how to detect authentication failures, and Jail configurations combine filters with actions into jails.
There are *.conf files that are distributed by fail2ban and *.local file that contain user customizations. There are *.conf files that are distributed by fail2ban and *.local file that contain user customizations.
All configuration files should be UTF-8 encoded for python3.
It is recommended that *.conf files should remain unchanged. If needed, customizations should be provided in *.local files. It is recommended that *.conf files should remain unchanged. If needed, customizations should be provided in *.local files.
For instance, if you would like to customize the [ssh-iptables-ipset] jail, create a jail.local to extend jail.conf For instance, if you would like to customize the [ssh-iptables-ipset] jail, create a jail.local to extend jail.conf
(the configuration for the fail2ban server). The jail.local file will be the following if you only need to enable (the configuration for the fail2ban server). The jail.local file will be the following if you only need to enable