Original changelog as ippool:

0.3.2b
- Fixed missing kfree(pool)				  (Martin Josefsson)

0.3.2a
- Added libipt_pool.c and libipt_POOL.c			  (Martin Josefsson)


0.3.2
- Passes pointers to skb's around instead of ip's in the  (Martin Josefsson)
  kernel modules.
- Added a new pooltype, macipmap, which matches ip's      (Martin Josefsson)
  against macaddresses.
- Cleaned up a lot of typedefs.                           (Martin Josefsson)
- Fixed an unlocking of the wrong lock.                   (Martin Josefsson)
- Fixed a refcount bug when allocated memory was too      (Martin Josefsson)
  small.
- Fixed a free() of unallocated memory.                   (Martin Josefsson)
- Switched from kmalloc/kfree to vmalloc/vfree for        (Martin Josefsson)
  pool-listings/additions.


0.3.1
- Changed the API between userspace modules and base.     (Joakim Axelsson)
  Moved the memberdata pointer to module self.
  As a result of this Protocolversion is increased to 4.
- Fixed problems with crashing null-pooltype              (Joakim Axelsson)
- Fixed problems with compiling warnings                  (Joakim Axelsson)
  in null pooltype.

	
0.3.0:
- Changed the listing to use getsockopt.                   (Joakim Axelsson)
  /proc is left for debuging purpose.
  This is a mayor change. 
  Protocolversion is increased to 3 
- Added support for --quiet                                (Joakim Axelsson)
- Added support for --sorted                               (Joakim Axelsson)
- Added support for --numeric                              (Joakim Axelsson)
- Added support for --exact                                (Joakim Axelsson)
- Added -Z (Zero) which zero's the counter                 (Joakim Axelsson)
  on one or all pools.
- Added support for --debug that prints all debug-messages (Joakim Axelsosn)
  in userspace. Need to be compiled with 
  IP_POOL_DEBUG tho.
- Added null pooltype. For demostration and                (Joakim Axelsson)
  pooltype skeleton mostly                                 
- Fixed bug with possibly renaming to an already           (Joakim Axelsson) 
  existing pool.
- Change error to OTHER_PROBLEM on add and del IP.         (Joakim Axelsson)

0.2.1-0.2.3
- Better handling of references                            (Patrick Schaaf)
- Various bugfixes                                         (Patrick Schaaf)
- Cleaning up the code in kernelspace                      (Patrick Schaaf)

0.2.0:
- Rewrote the entrie system. Modulized it.                 (Joakim Axelsson)
