From: "Maciej Żenczykowski" <zenczykowski@gmail.com>
To: "Maciej Żenczykowski" <maze@google.com>
Cc: netfilter-devel@vger.kernel.org, "Maciej Żenczykowski" <maze@google.com>
Subject: [PATCH] RFC - introduce xtables-multi
Date: Tue, 5 Apr 2011 02:49:19 -0700 [thread overview]
Message-ID: <1301996959-7342-1-git-send-email-zenczykowski@gmail.com> (raw)
From: Maciej Żenczykowski <maze@google.com>
I'm posting this mostly to inspire discussion.
I'd like to merge iptables-multi and ip6tables-multi
into a single multi-purpose binary xtables-multi.
I can think of a few ways to do this... any preferences?
a) we delete iptables-multi and ip6tables-multi and only build xtables-multi
which depending on whether we're including v4 and/or v6 has different capabilities
unfortunately we lose support for 'iptables-multi save', since with 'xtables-multi save'
it would not be clear whether ipv4 or ipv6 was meant
b) we add xtables-multi, only build it when both v4 and v6 are enabled, but don't install it
(or at least don't install any symlinks to it)
we leave the existing iptables-multi and ip6tables-multi as is
c) we add xtables-multi, only build it when both v4 and v6 are enabled, and when both
v4 and v6 are enabled we don't build both iptables-multi and ip6tables-multi
(also means we lose 'iptables-multi save' support), the symlinks now point to xtables-multi
d) maybe other ways I can't think of
(a) results in the smallest amount of code
(b) is the most backwards compatible
(c) has less if-def'ery then (a)
[side note: this patch depends on the "move 'int line'" patch I posted earlier today]
Comments?
---
.gitignore | 1 +
Makefile.am | 20 ++++++++++++++++++++
xtables-multi.c | 22 ++++++++++++++++++++++
3 files changed, 43 insertions(+), 0 deletions(-)
create mode 100644 xtables-multi.c
diff --git a/.gitignore b/.gitignore
index e5d3099..02f9d4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,3 +51,4 @@ Makefile.in
/iptables-restore
/iptables-static
/iptables-xml
+/xtables-multi
diff --git a/Makefile.am b/Makefile.am
index 866ac7e..f4e4587 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -57,6 +57,21 @@ endif
ip6tables_multi_LDFLAGS = -rdynamic
ip6tables_multi_LDADD = libiptc/libip6tc.la extensions/libext6.a libxtables.la -lm
+xtables_multi_SOURCES = xtables-multi.c \
+ iptables-save.c iptables-restore.c iptables-xml.c \
+ iptables-standalone.c iptables.c \
+ ip6tables-save.c ip6tables-restore.c \
+ ip6tables-standalone.c ip6tables.c \
+ xshared.c
+xtables_multi_CFLAGS = ${AM_CFLAGS} -DIPTABLES_MULTI
+if ENABLE_STATIC
+xtables_multi_CFLAGS += -DALL_INCLUSIVE
+endif
+xtables_multi_LDFLAGS = -rdynamic
+xtables_multi_LDADD = libiptc/libip4tc.la extensions/libext4.a \
+ libiptc/libip6tc.la extensions/libext6.a \
+ libxtables.la -lm
+
sbin_PROGRAMS =
man_MANS = iptables.8 iptables-restore.8 iptables-save.8 \
iptables-xml.8 ip6tables.8 ip6tables-restore.8 \
@@ -72,6 +87,11 @@ if ENABLE_IPV6
sbin_PROGRAMS += ip6tables-multi
v6_sbin_links = ip6tables ip6tables-restore ip6tables-save
endif
+if ENABLE_IPV4
+if ENABLE_IPV6
+sbin_PROGRAMS += xtables-multi
+endif
+endif
iptables.8: ${srcdir}/iptables.8.in extensions/matches4.man extensions/targets4.man
${AM_VERBOSE_GEN} sed -e 's/@PACKAGE_AND_VERSION@/${PACKAGE} ${PACKAGE_VERSION}/g' -e '/@MATCH@/ r extensions/matches4.man' -e '/@TARGET@/ r extensions/targets4.man' $< >$@;
diff --git a/xtables-multi.c b/xtables-multi.c
new file mode 100644
index 0000000..61060d3
--- /dev/null
+++ b/xtables-multi.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "xshared.h"
+#include "iptables-multi.h"
+#include "ip6tables-multi.h"
+
+static const struct subcommand multi_subcommands[] = {
+ {"iptables", iptables_main},
+ {"iptables-save", iptables_save_main},
+ {"iptables-restore", iptables_restore_main},
+ {"iptables-xml", iptables_xml_main},
+ {"ip6tables", ip6tables_main},
+ {"ip6tables-save", ip6tables_save_main},
+ {"ip6tables-restore", ip6tables_restore_main},
+ {NULL},
+};
+
+int main(int argc, char **argv)
+{
+ return subcmd_main(argc, argv, multi_subcommands);
+}
--
1.7.3.1
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2011-04-05 9:49 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-05 9:49 Maciej Żenczykowski [this message]
2011-04-05 9:57 ` [PATCH] RFC - introduce xtables-multi Jan Engelhardt
2011-04-05 23:45 ` [PATCH] combine ip6?tables-multi into xtables-multi Maciej Żenczykowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1301996959-7342-1-git-send-email-zenczykowski@gmail.com \
--to=zenczykowski@gmail.com \
--cc=maze@google.com \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.