From: Thomas Jarosch <thomas.jarosch@intra2net.com>
To: Patrick McHardy <kaber@trash.net>
Cc: netfilter-devel@vger.kernel.org, Jan Engelhardt <jengelh@medozas.de>
Subject: [patch] iptables version defines
Date: Mon, 2 Jun 2008 15:49:14 +0200 [thread overview]
Message-ID: <200806021549.15005.thomas.jarosch@intra2net.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1126 bytes --]
Hi Patrick,
[resent as I somehow sent an HTML email at first]
> >>>> #ifdef _XTABLES_H
> >>>> init(struct xt_entry_target *t)
> >>>> #else
> >>>> init(struct ipt_entry_target *t, unsigned int *nfcache)
> >>>> #endif
> >
> > Woah this is ridiculously ugly. (Remember, such constructs were
> > just eliminated from the kernel in the past years.)
>
> I don't care about uglyness as long as it stays in external
> code. So if someone sends me a patch to add this version
> define, I'll add it.
External code has to be "ugly" if you want to keep the user experience high.
I don't feel like breaking ipt_ACCOUNT for older iptables versions without
any real gain, it should work out of the box with iptables 1.4.0 and 1.4.1.
Attached is a patch to add the new defines. The macro XTABLES_VERSION
is already in use, so I named it XTABLES_VERSION_CHECK. I've also tested
that an empty XTABLES_VERSION_EXTRA in configure.ac works.
Now we can write code like this:
#if XTABLES_VERSION_CODE < XTABLES_VERSION_CHECK(1,5,0)
#warning You are obselete and will be assimilated.
#endif
Cheers,
Thomas
[-- Attachment #2: iptables-add-version.patch --]
[-- Type: text/x-diff, Size: 1795 bytes --]
Add xtables version defines.
Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
--- iptables-1.4.1-rc2/configure.ac Mon May 26 14:23:58 2008
+++ iptables.version/configure.ac Mon Jun 2 15:05:57 2008
@@ -1,5 +1,11 @@
+define([_XTABLES_VERSION_MAJOR], 1)
+define([_XTABLES_VERSION_MINOR], 4)
+define([_XTABLES_VERSION_PATCH], 1)
+define([_XTABLES_VERSION_EXTRA], -rc2)
-AC_INIT([iptables], [1.4.1-rc2])
+define([_XTABLES_VERSION],_XTABLES_VERSION_MAJOR._XTABLES_VERSION_MINOR._XTABLES_VERSION_PATCH[]_XTABLES_VERSION_EXTRA)
+
+AC_INIT([iptables], _XTABLES_VERSION)
AC_CONFIG_HEADERS([config.h])
AC_PROG_INSTALL
AM_INIT_AUTOMAKE
@@ -56,4 +62,14 @@
AC_SUBST([kbuilddir])
AC_SUBST([ksourcedir])
AC_SUBST([xtlibdir])
+
+XTABLES_VERSION_MAJOR=_XTABLES_VERSION_MAJOR
+XTABLES_VERSION_MINOR=_XTABLES_VERSION_MINOR
+XTABLES_VERSION_PATCH=_XTABLES_VERSION_PATCH
+XTABLES_VERSION_EXTRA=_XTABLES_VERSION_EXTRA
+AC_SUBST([XTABLES_VERSION_MAJOR])
+AC_SUBST([XTABLES_VERSION_MINOR])
+AC_SUBST([XTABLES_VERSION_PATCH])
+AC_SUBST([XTABLES_VERSION_EXTRA])
+
AC_OUTPUT([Makefile extensions/GNUmakefile libipq/Makefile include/xtables.h])
--- iptables-1.4.1-rc2/include/xtables.h.in Mon May 26 14:15:40 2008
+++ iptables.version/include/xtables.h.in Mon Jun 2 15:03:46 2008
@@ -18,6 +18,12 @@
#endif
#define XTABLES_VERSION "@PACKAGE_VERSION@"
+#define XTABLES_VERSION_CODE (0x10000 * @XTABLES_VERSION_MAJOR@ + 0x100 * @XTABLES_VERSION_MINOR@ + @XTABLES_VERSION_PATCH@)
+
+#define XTABLES_VERSION_CHECK(x,y,z) (0x10000*(x) + 0x100*(y) + z)
+#define XTABLES_VERSION_MAJOR(x) (((x)>>16) & 0xFF)
+#define XTABLES_VERSION_MINOR(x) (((x)>> 8) & 0xFF)
+#define XTABLES_VERSION_PATCH(x) ( (x) & 0xFF)
/* Include file for additions: new matches and targets. */
struct xtables_match
next reply other threads:[~2008-06-02 13:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-02 13:49 Thomas Jarosch [this message]
2008-06-02 14:54 ` [patch] iptables version defines Jan Engelhardt
2008-06-02 15:32 ` Thomas Jarosch
2008-06-02 17:03 ` Jan Engelhardt
2008-06-03 13:02 ` Patrick McHardy
-- strict thread matches above, loose matches on Subject: below --
2008-05-30 8:16 Thomas Jarosch
2008-05-30 10:53 ` Jan Engelhardt
2008-06-01 21:13 ` Patrick McHardy
[not found] ` <200806021545.23690.thomas.jarosch@intra2net.com>
2008-06-02 13:50 ` [patch] " Patrick McHardy
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=200806021549.15005.thomas.jarosch@intra2net.com \
--to=thomas.jarosch@intra2net.com \
--cc=jengelh@medozas.de \
--cc=kaber@trash.net \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox