summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--ip6tables.c8
-rw-r--r--iptables-xml.c8
-rw-r--r--iptables.c9
4 files changed, 26 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 0ffb9785..96de1b2e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,6 +21,7 @@ iptables_SOURCES = iptables-standalone.c iptables.c
iptables_LDFLAGS = -rdynamic
iptables_LDADD = -ldl -lm libiptc/libiptc.a extensions/libext4.a libxtables.la
+iptables_xml_LDADD = -ldl libxtables.la
iptables_multi_SOURCES = iptables-multi.c iptables-save.c \
iptables-restore.c iptables-xml.c \
iptables-standalone.c iptables.c
diff --git a/ip6tables.c b/ip6tables.c
index 233974f2..7561353f 100644
--- a/ip6tables.c
+++ b/ip6tables.c
@@ -145,6 +145,13 @@ int line = -1;
static struct option *opts = original_opts;
static unsigned int global_option_offset = 0;
+struct xtables_globals ip6tables_globals = {
+ .option_offset = 0,
+ .program_version = IPTABLES_VERSION,
+ .program_name = "ip6tables",
+ .opts = original_opts,
+ .exit_error = exit_error,
+};
/* Table of legal combinations of commands and options. If any of the
* given commands make an option legal, that option is legal (applies to
@@ -1371,6 +1378,7 @@ int do_command6(int argc, char *argv[], char **table, struct ip6tc_handle **hand
demand-load a protocol. */
opterr = 0;
+ xtables_set_params(&ip6tables_globals);
while ((c = getopt_long(argc, argv,
"-A:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:bvnt:m:xc:g:",
opts, NULL)) != -1) {
diff --git a/iptables-xml.c b/iptables-xml.c
index 307845c5..329c5983 100644
--- a/iptables-xml.c
+++ b/iptables-xml.c
@@ -17,6 +17,7 @@
#include "iptables.h"
#include "libiptc/libiptc.h"
#include "iptables-multi.h"
+#include <xtables.h>
#ifdef DEBUG
#define DEBUGP(x, args...) fprintf(stderr, x, ## args)
@@ -629,6 +630,12 @@ do_rule(char *pcnt, char *bcnt, int argc, char *argv[], int argvattr[])
do_rule_part(NULL, NULL, 1, argc, argv, argvattr);
}
+struct xtables_globals iptables_xml_globals = {
+ .option_offset = 0,
+ .program_version = IPTABLES_VERSION,
+ .program_name = "iptables-xml",
+ .exit_error = exit_error,
+};
#ifdef IPTABLES_MULTI
int
@@ -646,6 +653,7 @@ main(int argc, char *argv[])
program_version = IPTABLES_VERSION;
line = 0;
+ xtables_set_params(&iptables_xml_globals);
while ((c = getopt_long(argc, argv, "cvh", options, NULL)) != -1) {
switch (c) {
case 'c':
diff --git a/iptables.c b/iptables.c
index f1a5d33e..e8bed877 100644
--- a/iptables.c
+++ b/iptables.c
@@ -145,6 +145,14 @@ int line = -1;
static struct option *opts = original_opts;
static unsigned int global_option_offset = 0;
+struct xtables_globals iptables_globals = {
+ .option_offset = 0,
+ .program_version = IPTABLES_VERSION,
+ .program_name = "iptables",
+ .opts = original_opts,
+ .exit_error = exit_error,
+};
+
/* Table of legal combinations of commands and options. If any of the
* given commands make an option legal, that option is legal (applies to
* CMD_LIST and CMD_ZERO only).
@@ -1393,6 +1401,7 @@ int do_command(int argc, char *argv[], char **table, struct iptc_handle **handle
demand-load a protocol. */
opterr = 0;
+ xtables_set_params(&iptables_globals);
while ((c = getopt_long(argc, argv,
"-A:D:R:I:L::S::M:F::Z::N:X::E:P:Vh::o:p:s:d:j:i:fbvnt:m:xc:g:",
opts, NULL)) != -1) {