diff --git a/.travis.yml b/.travis.yml index 1a0de9af..ea84432e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ python: - "2.7" - "3.2" - "3.3" + - "pypy" before_install: - sudo apt-get update -qq install: diff --git a/ChangeLog b/ChangeLog index e55188eb..9494afe9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -63,6 +63,7 @@ code-review and minor additions from Yaroslav Halchenko. support these. ISO8601 now defaults to localtime unless specified otherwise. Some filters have been change as required to capture these elements in the right timezone correctly. + * Support PyPy ver. 0.8.12 (2013/12/XX) - things-can-only-get-better ----------- diff --git a/README.md b/README.md index 129d24f7..0f033cf3 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Installation: this case, you should use it instead.** Required: -- [Python2 >= 2.4 or Python3 >= 3.2](http://www.python.org) +- [Python2 >= 2.4 or Python3 >= 3.2](http://www.python.org) or [PyPy](http://pypy.org) Optional: - [pyinotify >= 0.8.3](https://github.com/seb-m/pyinotify) diff --git a/fail2ban/server/failregex.py b/fail2ban/server/failregex.py index d5732c80..d3299144 100644 --- a/fail2ban/server/failregex.py +++ b/fail2ban/server/failregex.py @@ -21,7 +21,7 @@ __author__ = "Cyril Jaquier" __copyright__ = "Copyright (c) 2004 Cyril Jaquier" __license__ = "GPL" -import re, sre_constants +import re, sre_constants, sys ## # Regular expression class. @@ -138,6 +138,11 @@ class Regex: n += 1 except IndexError: break + # KeyError is because of PyPy issue1665 affecting pypy <= 2.2.1 + except KeyError: + if 'PyPy' not in sys.version: # pragma: no cover - not sure this is even reachable + raise + break return skippedLines.splitlines(False) ##