IPTables-libiptc version 0.17
=============================

This package provides a Perl interface to the netfilter/iptables
C-library libiptc.

Advantages of this module: Many rule changes can be done very
fast. Several rule changes is committed atomically.

This module is heavily inspired by the CPAN module IPTables-IPv4.  The
CPAN module IPTables-IPv4 could not be used because it has not been
kept up-to-date, with the newest iptables extentions.  This is a
result of the module design, as it contains every extension and thus
needs to port them individually.

This package has another approach, it links with the systems libiptc.a
library and depend on dynamic loading of iptables extensions available
on the system.

This design limits us to only export the libiptc chain manipulation
functions.  All rule manipulations are done through the iptables.c
"do_command" function. (As iptables.c is not made as a library, below
iptables version 1.4.3, the package unfortunately needs to
maintain/contain this C file).


DEPENDENCIES

This module requires these other modules and libraries:

 iptables
 libiptc.a

The iptables version installed on your system is auto-detected during
generation of the Makefile.PL file.  This sets the IPTABLES_VERSION
variable as it needs to match the .so extentions available on you
system.

This release only supports the iptables versions 1.4.1.  The default
fallback IPTABLES_VERSION is currently set to version 1.4.1.


BUGS

There are some segfault issues when comparing the IPTABLES_VERSION
variable (in the dynamic loadable modules) between iptables versions,
1.4.1 and 1.4.2, and also between 1.4.2 and 1.4.3.  It has been fixed
from version 1.4.3.2 and beyond (see git commit c4edfa63eda06)

Its related to "include/xtables.h" (structs xtables_match and
xtables_target, and location of the "version" element).  Thus, you can
avoid this issue by using the include file "include/xtables.h" from
the appropiate version.


INSTALLATION

Notice this module depends on iptables dynamic loadable libraries,
thus it needs to know the path to them (default assumes they are
located in /lib/xtables).  The iptables path for dynamic loading
(where the libipt_*.so files are located) can be altered by setting
the variable XTABLES_LIBDIR while calling make.  This can also be
changed later at runtime setting the environment variable
IPTABLES_LIB_DIR.

To install this module type the following:

   perl Makefile.PL PREFIX=/usr/local/
   make XTABLES_LIBDIR=/usr/local/libexec/xtables
   sudo make test
   make install PREFIX=/usr/local/stow/IPTables-libiptc-0.17

   cd /usr/local/stow/
   stow IPTables-libiptc-0.17


COPYRIGHT AND LICENCE

Copyright (C) 2006-2009 by Jesper Dangaard Brouer <hawk@cpan.org>

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.4 or,
at your option, any later version of Perl 5 you may have available.
