Some things to do (not necessarily in priority order):

For Pidentd 3.1 or future:

* Test/verify that the Linux code works for both old and modern kernels
  and glibc combinations - with and without IPv6 support. Right now it's
  only been tested on a machine _with_ IPv6 support in glibc, but no
  kernel support...

* Check all the k_XXX modules for malloc() calls with kernel-supplied
  data (switch from the aborting a_XXX routines to something else)

* Fix the IPv6 support for pdes/idecrypt.

* Convert k_freebsd to use Casper-style IPv6 code.

* Check k_freebsd.c for memory leaks

* Clean up the handling of SOCKS, create a patch to the SOCKS
  server so that it uses DB.

* Implement an option to always return 'UNKNOWN-ERROR' instead of
  informative errors

* Implement an ACL list for PROXY queries. (Support proxy queries
  via a Unix domain socket?

* Ibench: Support long command line options. Print progress dots.
          Handle timeouts better (EINTR).

* Support NetBSD/OpenBSD/BSDI

* Support old FreeBSD versions (which doesn't have "gcc -pthread")

* Support faked IDENT replies.

For Pidentd 3.2 or future:

* Support a queue of pre-created client communication threads
  (ala the kernel lookup threads) to avoid the cost of thread
  creation/destruction.

* Better random key generator in ikeygen.c (/dev/random?)

* Much better DES key generation and handling needed (use MD5)!

* Modify the encrypted tokens to include a version number, encryption
  type(?) and uint32_t uids (both ruid and euid).

Much later:

* Add support for TCP Wrappers (need a threads safe TCP Wrapper library!)

* Use Automake, perhaps.

