__      _ _ ___ _               
              / _|__ _(_) |_  ) |__  __ _ _ _  
             |  _/ _` | | |/ /| '_ \/ _` | ' \ 
             |_| \__,_|_|_/___|_.__/\__,_|_||_|

=============================================================
ToDo                                         $Revision$
=============================================================

Legend:
- not yet done
? maybe
# partially done
* done

- Removed relative imports

- Discuss where Fail2ban should be installed (/usr/share,
  /usr/lib/python/site-packages/, etc)

- Cleanup fail2ban-client and fail2ban-server. Move code to
  server/ and client/

- Add timeout to external commands (signal alarm, watchdog
  thread, etc)

- New backend: pyinotify

- Uniformize filters and actions name. Use the software name
  (openssh, postfix, proftp)

- Added <USER> tag for failregex. Add features using this
  information. Maybe add more tags

- Look at the memory consumption. Decrease memory usage

- More detailed statistics

- Auto-enable function (search for log files), check
  modification date to see if service is still in use

- Improve parsing of the action parameters in jailreader.py

- Better handling of the protocol in transmitter.py

- Add gettext support (I18N)

- Fix the cPickle issue with Python 2.5

- Multiline log reading

- Improve communication. (asyncore, asynchat??)

- Improve execution of action. Why does subprocess.call
  deadlock with multi-jails?

# see Feature Request Tracking System at SourceForge.net

# improve documentation and website for user

# better return values in function

# refactoring in server.py, actions.py, filter.py